美文网首页
骇人听闻的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