- Android长连接,怎么处理心跳机制。
Android 消息处理机制(Handler、Looper、MessageQueue、Message)
AIDL 实现
APP 启动过程
Activity 启动过程
-
View树绘制流程
-
事件的传递机制
下拉刷新实现原理
你用过什么框架,是否看过源码,是否知道底层原理。
Android主流网络请求开源库的对比Android 5.0,6.0,7.0特性
Android5.0新特性:
1.MaterialDesign设计风格
2.支持多种设备
3.支持64位ART虚拟机
Android6.0新特性
1.动态权限检测机制
2.大量漂亮流畅的动画
3.支持快速充电的切换
4.支持文件夹拖拽应用
5.相机新增专业模式
Android7.0新特性
1.分屏多任务
2.增强的Java8语言模式
3.夜间模式
4.fileProvider
- Context区别
- Activity和Service以及Application的Context是不一样的,Activity继承自ContextThemeWraper.其他的继承自ContextWrapper
- 每一个Activity和Service以及Application的Context都是一个新的ContextImpl对象
- getApplication()用来获取Application实例的,但是这个方法只有在Activity和Service中才能调用的到。那么也许在绝大多数情况下我们都是在Activity或者Service中使用Application的,但是如果在一些其它的场景,比如BroadcastReceiver中也想获得Application的实例,这时就可以借助getApplicationContext()方法,getApplicationContext()比getApplication()方法的作用域会更广一些,任何一个Context的实例,只要调用getApplicationContext()方法都可以拿到我们的Application对象。
- Activity在创建的时候会new一个ContextImpl对象并在attach方法中关联它,Application和Service也差不多。ContextWrapper的方法内部都是转调ContextImpl的方法
创建对话框传入Application的Context是不可以的 - 尽管Application、Activity、Service都有自己的ContextImpl,并且每个ContextImpl都有自己的mResources成员,但是由于它们的mResources成员都来自于唯一的ResourcesManager实例,所以它们看似不同的mResources其实都指向的是同一块内存
- Context的数量等于Activity的个数 + Service的个数 + 1,这个1为Application
7.Gradle
构建工具、Groovy语法、Java
Jar包里面只有代码,aar里面不光有代码还包括代码还包括资源文件,比 如 drawable 文件,xml 资源文件。对于一些不常变动的 Android Library,我们可以直接引用 aar,加快编译速度