美文网首页
骇人听闻的Android知识点

骇人听闻的Android知识点

作者: 平头说人生 | 来源:发表于2018-06-01 13:58 被阅读9次

00000100

IntentFilter中设置addDataScheme后,比如content, 广播中的Intent在setData的时候只要scheme是content不管path是什么都可以匹配的上

00000011

SystemService.java 代表的不是一个service,而是跑在system进程里面和系统service有关联的一个封装。
通常继承了stub服务端的service作为成员存在于SystemService中。
启动SystemService的时候只需要传入实现了SystemService的class name传进来即可,
后面会拿到该class的构造函数并初始化一个对象放到SystemService的管理对列里面,此时该对象的生命周期就和system进程一致了。

00000010

Android 8.0 Bitmap 的Memory在native,
Android 7.0 Bitmap 的Memory在dalvik heap,
所以在Android 8.0中,进程不会因Bitmap而OOM,直到耗尽所有Memory直接Crash,
Android 7.0 以及之前会因为超过dalvik heap的最大值而OOM.

00000001

ContacsProvider有个暗门可以导出联系人,手机在打开usb调试后,终端下执行如下命令即可一步一步导出,
导出的数据库文件,这对分析问题很有帮助

adb shell am start com.android.providers.contacts/com.android.providers.contacts.debug.ContactsDumpActivity

00000000

App可以通过AIDL访问Service,那么Service可以通过AIDL访问App吗?

Yes

比如App中的LocationListener在LocationManager注册的时候就是将LocationListern封装成一个Service Stub,
在Service Stub中作为一个成员变量供LocationManagerService调用,
其实最终还是通过AIDL的形式进行IPC

还有PhoneStateListener中的callback成员IPhoneStateListener,也是继承了Stub的service端

相关文章

网友评论

      本文标题:骇人听闻的Android知识点

      本文链接:https://www.haomeiwen.com/subject/mftksftx.html