1、service的启动方式,绑定方式,有何不同
两种启动方式,startService和bindService,startServie会一直运行,除非调用stopService或stopself
两种绑定方式,对应两种启动方式
A、代码配置,继承service,重写方法
B、manifest配置,继承service,重写方法
知识从https://www.jianshu.com/p/4c798c91a613获取
2、service的生命周期,启动顺序
create、startCommand、bind、unbind、rebind、destroy
详情见https://www.jianshu.com/p/cc25fbb5c0b3
3、广播的生命周期,启动顺序,启动方式,有何不同
这里的启动方式指注册方式
A、动态注册,即在代码中注册
B、静态注册,manifest注册
区别:动态注册比较方便更改和动态生成,但是activity退出即关闭,且消耗很大内存,所以一定记得注销
静态注册比较牢固,不管activity怎么样都是存在的,个人理解更多的是和application绑定,可以理解为启动程序就启动了广播
详情见https://blog.csdn.net/mahaiming1990/article/details/51282279
生命周期分两种
服务的生命周期,见第二点
broadcastReceiver
onReceived
详情见https://www.csdn.net/gather_24/MtTakg3sNzk1OC1ibG9n.html、https://www.cnblogs.com/wellsoho/p/4899893.html
4、自定义view需要重写的方法,每个方法的作用
构造函数、measure(测量View宽高)、layout(计算View的位置)、draw(视图的绘制)
详情见https://www.jianshu.com/p/705a6cb6bfee
5、AIDL相关知识
个人理解为跨进程通信?工作中不常用,确实不太清楚
详情见https://www.jianshu.com/p/5043a1a69269
6、事件分发机制
详情见https://blog.csdn.net/WalterZhoukick/article/details/82682221(自己写的文章,自己都能忘)
7、如何进行进程守护
和第5点、第1、2点连起来理解,通过service来跨进程保活,理论上双进程可以做到无限守护
详情见https://www.jianshu.com/p/83ea5e03bd61?from=timeline&isappinstalled=0
8、进程间如何通信,线程间如何通信
进程通信
A、AIDL
B、messenger
C、contentProvider
D、socket
详情见https://blog.csdn.net/hzw2017/article/details/81275438
线程通信
A、线程锁
B、Handler
C、runOnUiThread
D、view.post
E、AsyncTask
详情见https://www.jianshu.com/p/4265698b0577(这里面没写线程锁,但是线程锁理论上可以进行简单的通信,如A、B线程,A线程完成后释放锁,其实也就是一种通信方式,如果不懂可以私信,人数多我会专门写一篇文章)
9、线程优先级问题
setPriority(1-10,越大优先级越高)
详情见https://blog.csdn.net/qingchunweiliang/article/details/84940255
10、待更新