1. 常用的对称加密算法,有什么?

  2. view分发反向制约的方法

  3. 这次的面试没及时复盘,所以后半个小时的面试题忘得差不多了。这次的面试官比较严肃,搞得我有点紧张,所以最后 还是挂了,然后就是新一轮的面试。

四面(2018年4月春招)

  1. 动态代理的方法怎么初始化的

  2. cglib动态代理

  3. 三个线程wait,唤醒情况是什么样的

  4. 最终是谁持有的activity,handler内存泄露(内存泄漏这点真的是无比幸运,刚好找到的视频里面讲过)

  5. handler的sendmessage和postdelay的区别

  6. arraylist和hashmap的区别,为什么取数快

  7. 差不多重复的和模糊的

五面(2018年10月秋招)

  1. 简单介绍项目

  2. 了解哪些数据结构

  3. 了解哪些排序算法

  4. 堆排序

  5. LinkedList与ArrayList;HashMap扩容 ConcurrentHashMap

  6. TCP与UDP,区别及运用场景

  7. http是用的TCP还是UDP

  8. http与https的区别

  9. JVM内存模型(Static方法在哪个区)

  10. Activity生命周期,Activity启动模式,Handler源码

  11. 旋转数组

六面(2019年3月春招)

  1. final、finally、finalize的区别

  2. 抽象类的成员变量与成员方法的继承

  3. union与union all的区别

  4. MySQL的索引的实现

  5. B+树查找的时间复杂度,数据结构

  6. 在浏览器输入网址敲回车后经历了什么

  7. 三次握手

  8. https的加密流程

  9. 对称加密与非对称加密原理(RSA、AES)

  10. 手撕DCL单例

  11. 还了解什么设计模式

七面(2019年四月春招)

  1. Future和microtask执行顺序

  2. dart中…是什么

  3. await for使用

  4. singleinstance的启动模式如果不指定栈名,是怎么分配的

  5. wait和sleep的区别

  6. jvm线程私有的有哪些

  7. 动态代理的方法怎么初始化的

八面(2019年9月秋招)

  1. stringbuilder 和stringbuffer区别

  2. lock和syncrognized原理区别,适合什么场景。

  3. 实现生产者,消费者

  4. handler原理,是如何实现延时的。

  5. 一个activity启动另外一个activity的生命周期。

  6. 反转链表

  7. 归并排序

  8. 快速排序

九面(2020年5月春招)

  1. 抽象类和接口解释一下。

  2. 讲讲类的加载机制。

  3. jvm的内存回收机制,那你了解哪些内存回收算法。主要用的那个算法。

  4. 抽象类和接口的区别。

  5. Activity有哪些启动模式

  6. Fragment的生命周期和Activity有哪些不同,执行顺序解释一下。(这个回答的有点迷,只能说大体是那么一回事)

  7. 线程和服务的区别,解释一下。

  8. 事件分发机制讲解一下,view中有个onFilterTouchEventForSecurity还是啥,小哥哥说是view中独有的一个方法,你了解吗?(英语水平不过关,没听清是啥方法,表示不清楚。)

  9. 充值模块如何进行的封装

  10. handler的机制讲解一下。

  11. 模板方法讲解一下(脑袋抽了,记不起来)

  12. 如何保证应用的安全性,做了哪些处理。

  13. 加固的原理了解嘛。

腾讯5面面经

============================================================================

一面

  • mmap + native 日志优化?

讲了传统日志打印的两个性能问题,一个是反复操作文件描述符表,一个是反复进入内核态,然后讲了 mmap 的原理机制。

  • 广播和 EventBus 的区别?

说 EventBus 的实现原理是基于反射,里面管理了两张表,且代码之间关联性不大不易于维护,EventBus 不支持跨进程通信,被面试官反问你确定不支持跨进程?我说我的看的源码是不支持,面试官说那好吧。

  • 常用设计模式你了解哪些?

我开始巴拉巴拉说了一大堆,其中说到了装饰设计模式,被面试官打断了,请你具体说说装饰设计模式。

  • 跨进程通信有哪些?

管道,信号,信号量,文件,本地套接字,共享内存,binder 驱动

  • 简单讲讲 binder 驱动吧?

从 Java 层来看就像访问本地接口一样,客户端基于 BinderProxy 服务端基于 IBinder 对象,从 native 层来看来看客户端基于 BpBinder 到 ICPThreadState 到 binder 驱动,服务端由 binder 驱动唤醒 IPCThreadSate 到 BbBinder 。然后又讲了虚拟内存、物理内存和内存映射,跨进程通信的原理是要基于内核的, 当我讲到 binder_open 、binder_mmap 和 binder_ioctl 是被面试官打断了,估计是怕我讲太久了。

  • 跨进程传递大内存数据如何做?

我说 binder 肯定是不行的,因为映射的最大内存只有 1M-8K,可以采用 binder + 匿名共享内存的形式,向跨进程传递大的 bitmap 需要打开系统底层的 ashmem 机制。

  • 说说 ConcurrentHashMap 的实现原理说下,初始化大小是多少?

是线程安全的,实现原理采用的是分段锁,初始化大小是 16 ,必须是 2 的幂次。

  • 启动优化怎么优化?

我说了关键优化 Application ,被面试官打断了,说大家都能想到的东西你不要说了,我想听的是你能不能站在系统的角度去做一些优化,我提到了优化包体积大小能优化启动速度,优化 dex 分包能优化启动速度,可以参考最新的华为方舟编译器等等。

  • 你写的 rxpay 和 rxlogin 具体怎么实现的?

一般我们集成第三方登录和第三方支付 SDK 都需要监听 onActivityResult 方法,我是参考了 RxPermission 的实现方案添加了透明 Activity 。

  • kotlin + fullter 方面的

二面

  1. java异常分类

  2. 什么是编译时异常

  3. object的方法有哪些

  4. 虚拟机为什么能让class文件让机器识别

  5. 除了json之外,客户端和服务器通信还有哪些格式

说了xml,hashmap,但是好像不是很满意,后来网上查到还有protobuf

三面

  1. 源码中looper的while循环是怎么确定调度的,比如MQ为空时怎么办?

  2. 事件分发

  3. 单例设计模式都写写,静态内部类是怎么保证线程安全的?

  4. synchronized 底层实现原理,ReentrantLock 公平锁与非公平锁。

  5. 主线程等待所有线程执行完毕,再执行某个特定任务怎么实现?原理和源码看过没?

  6. 自定义 view 的一般流程,要注意些什么如何优化,点击时间和长按时间分别是怎么实现的?

  7. 四种启动模式,在源码分析中的原理是怎样的?

  8. 讲讲 bindService 的过程,你当初是怎么优化后台服务进程的?

  9. 开发中你都用到了哪些设计模式?说说当时具体的场景。为什么你要用方法工厂,另外两种呢?

  10. RxJava 在使用过程中碰到了某些不友好的错误一般怎么解决?发现了内存泄露一般怎么解决分析,有没有碰到过系统服务内存泄露的问题?

  11. 你们用的 okhttp ?那你有没有做过一些网络优化呢?比如弱网环境。

  12. 给你个数 1 吧,比如 1000011 里面有几个 1 ?

  13. 快排了解不?最坏的情况是怎样?如果有大量重复数据怎么优化?

四面

  1. 先谈谈自己的项目

远程数据库传输图片到app端,我们当时将图片转换成base64存在数据库中,然后传到app端,app解析base64获得bitmap,直接显示然后面试官疯狂diss 为什么要将图片转成base64再传(二面也diss这个,问是否可以直接传图片地址)

  1. 讲一下http连接的框架

  2. retrofit原理

  3. 什么是动态代理

  4. 自定义view

  5. 继承viewGroup的情况

  6. activity的生命周期

  7. 对handler机制的了解

五面

  1. 讲讲 handler 的底层实现原理?这么简单?问到碗里来了,后面渐渐说到延迟消息是 nativePollOnce 来处理的,在 6.0 以上用的是 epoll 方式来监听文件描述符。接着问道了为什么要用这种方案?它跟 poll 和 select 比起来有哪些优势?它是怎么监听的你看过它的内部实现原理没?反正感觉很难受了。

  2. 说说你做的日志记录优化?你在每个文件的最后写入了当前内容的大小,你有没有想过如果文件被破坏的情况?这种异常情况怎么处理?后面还问到了加密和压缩。

  3. 你看过 binder 驱动的源码,说说他的内存映射过程,说说客户端等待服务端处理返回的流程,如果要跨进程传递大内存数据你具体会怎么做?简单写一写吧。

  4. 在公司做过哪些优化?内存优化,启动优化,网络优化,包体积优化,具体说说包体积优化。我提到了包体积优化不仅仅是优化了包的大小,包体积太大从安装的那一刻开始,我们的应用就可能比较慢了,因为 pms 会去拷贝解压解析我们的 apk 安装文件,会去优化我们的 dex 等等,包体积太大还会影响我们的启动速度。然后就巴拉巴拉说具体怎么做,问到了为啥混淆资源能减少包体积大小?你当时优化的时候效果是怎样的减少了多少?

  5. 开发过程中遇到的一些最难解决的问题?提到了动态修复替换加载 so ,那你知道怎么修复 class 吗?怎么修复资源呢?后面又聊到了插件化,提到了 360 用的是借尸还魂,那如果我们在插件的 Androidmanifest.xml 中注册了其它属性该怎么解决,资源方面怎么处理?

字节跳动面试题

=========================================================================

一面

  1. Jvm虚拟机

  2. messageQueue会不会阻塞ui线程

最后

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;

我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

《Android架构视频+BAT面试专题PDF+学习笔记​》

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望**这份系统化的技术体系**对大家有一个方向参考。

.(img-JTUru2xP-1646147214723)]

[外链图片转存中…(img-48yAIRYb-1646147214724)]

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望**这份系统化的技术体系**对大家有一个方向参考。

2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。

从阿里9面到腾讯5面后被字节捞走,四年Android 开发辛酸之路…,androidstudio汉化相关推荐

  1. 字节跳动架构师讲解Android开发!已成功拿下字节、腾讯、脉脉offer,含BATJM大厂

    开头 程序员面试,除了面试技术外,有的公司经常会问应聘者和技术无关的问题,考验求职者的综合能力,并以此作为是否录用的依据,很多时候这类问题往往没有标准答案,就看求应聘者临场的反应能力如何. 张工是一名 ...

  2. 涂鸦智能冲刺IPO,不卖硬件的AIoT公司,团队阿里云出身,腾讯是大股东

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 一家创始团队来自阿里,却被腾讯持股10.8%的公司,这周要上市了. 近日,IoT公司涂鸦智能向美国SEC提交了更新后的招股书,计划3月19 ...

  3. 互相封杀8年后,阿里终于挖开腾讯12亿流量金矿?

    腾讯与阿里两大山头的"互联互通"有了新进展. 11月29日晚,微信发布公告称,即日起调整外部链接管理措施. 用户在点对点聊天场景(也就是私聊窗口)中将可直接访问外链:同时将在群聊场 ...

  4. 大学计算机基础知识点_阿里云大学和腾讯云大学的计算机基础课程

    再怎么强调生物信息学数据分析学习过程的计算机基础知识的打磨都不为过,我把它粗略的分成基于R语言的统计可视化,以及基于Linux的NGS数据处理: <生信分析人员如何系统入门R(2019更新版)& ...

  5. 416亿元公有云市场:阿里173亿、腾讯50亿、华为35亿

    416亿元公有云市场:阿里173亿.腾讯50亿.华为35亿 https://www.toutiao.com/i6938428907783733768/?tt_from=weixin&utm_c ...

  6. 阿里IoT云VS腾讯IoT云,相互抄袭还是一女俩嫁?

    阿里IoT云VS腾讯IoT云,相互抄袭还是一女俩嫁? 设备侧C SDK 基本比较 版本号竟然类似 Makefile基本一致 编译宏/特性定义基本一致 API接口定义基本一致 总结 设备侧C SDK 基 ...

  7. 阿里鱼卡,腾讯王卡,百度圣卡,谁是流量卡中的性价比之王?

    10月初,UC.优酷.虾米.高德等阿里系矩阵联合电信推出阿里鱼卡,正式进入流量卡市场.对比百度圣卡.腾讯王卡,除了套餐内享受专属APP矩阵免流之外,鱼卡最大的亮点在于享受UC浏览器全网免流服务,下载文 ...

  8. 2020春招 / 2021秋招阿里、腾讯、字节、快手、美团 JAVA 开发岗面试高频问题总结

    2020春招 / 2021秋招阿里.腾讯.字节.快手.美团 JAVA 开发岗面试高频问题总结 2.1 进程和线程的区别? 2.2 进程的调度算法有哪些?(主要) 2.3 常用 IO 模型? 2.4 s ...

  9. 阿里、华为、腾讯的“第二曲线”,大厂云们的成败得失如何评价?

    本文首发于公众号"白德曼"(Badman_Insights),欢迎关注,一起探讨新经济和新产业 过去一年,作为中国新经济的领头羊和风向标,阿里.华为.腾讯这三家科技大厂,在各种相同 ...

最新文章

  1. uniapp移动端H5在线预览PDF等文件实现源码及注解
  2. 大学生计算机基础excel视频,大学生计算机基础Excel.doc
  3. Animy.js,自己编写的功能丰富的html动画库
  4. 坐拥双妹、佰草集,上海家化是怎样将一只脚留在高端护肤品门外的?
  5. java mapper.readtree_Java ObjectMapper.readTree方法代码示例
  6. //随机生成1位大写字母\小写字母\数字
  7. oracle slient静默安装并配置数据库及仅安装数据库不配置数据库shell
  8. 微软随.NET 4.5发布新REST API框架
  9. 为memcached增加缓存依赖的性能测试
  10. vue 利用axios请求接口下载excel
  11. Linux 命令(31)—— find 命令
  12. Android 逆向分析(三)之动态调试Smali
  13. Ehcache整合spring配置
  14. MySQL数据库(10)----IN 和 NOT IN 子查询
  15. [转]使用 HTML5 索引型数据库的待办事项简要列表
  16. Eclipse Android开发环境搭建
  17. Unity3D游戏开发之路:一月工作总结
  18. 12.12 生日快乐
  19. Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection(速读啊)内含与u-shape的对比
  20. MOD09A1数据下载与预处理-地表干湿度指数的计算

热门文章

  1. Java 实现文档在线预览功能
  2. linux命令:grep常用语法
  3. egret解决无法默认播放声音问题
  4. 实现诺易腾与unity3D实时交互的软件设置
  5. VLOOKUP函数多条件(两个或三个条件)查询
  6. 《程序员的数学》读书笔记
  7. 服务降级与服务熔断区别
  8. centos挂载硬盘(centos挂载硬盘启动时自动挂载)
  9. 7-10使用历史记录画笔
  10. Map转对象属性值组装方法