
中国移动中级Android面试:在初级基础之上更看重原理深度与实战调优。咪咕视频的起播速度、掌厅的包体积、和包的支付安全都是能聊出深度的点。面试官喜欢从一道题往下挖到Framework。Q1:AIDL生成的Stub和Proxy怎么协作?AIDL编译后生成Java文件:Stub(服务端)继承Binder实现onTransact()——根据方法code分发到具体的业务方法。Proxy(客户端)持有IBinder引用,调任何方法时都是把参数序列化进Parcel,然后调transact()跨进程发送,再反序列化返回值。oneway修饰的方法不等待返回值。val data = Parcel.obtain() mRemote.transact(TRANSACTION_getData, data, reply, 0) return reply.readString()追问:onTransact在哪个线程执行?Binder线程池,默认最多16个线程——不是主线程,需要注意线程安全。Q2:App启动优化有哪些核心手段?冷启动分三阶段优化:1)Application.onCreate——用启动器框架延迟/异步初始化非必要SDK,只留必须最先初始化的;2)Activity.onCreate——避免setContentView前的主线程耗时操作,布局预加载;3)首帧渲染——预创建Window背景减少白屏。目标冷启动500ms。用adb shell am start -W测TotalTime,用Systrace分析每阶段耗时。AppInitializer.init {