- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入理解Andorid重难点课件
深入理解Android重难点解析 主讲人——邓凡平 大纲 一 JNI重难点分析 1.1 注册方法的选择 1.2 垃圾回收 二 init重难点分析 2.1 keywords.h的有趣用法 2.2 用好“DllMain函数”——客户端Property读取的实现 三 Android常用类重难点分析 3.1 RefBase、sp和wp 3.2 题外话——无所不用其极 四 Binder重难点分析 4.1 时空穿越魔术揭秘 4.2 Binder和线程的关系 五 Audio系统重难点分析 5.1 AudioTrack 方法论 5.2 AudioFlinger中的对象 5.3 AudioPolicyService实例 5.4 audio_control_block_t分析 5.5 学习并实践Desktop Check 大纲(接上) 六 Surface系统重难点分析 6.1 来之不易的Activity 6.2 乾坤大挪移——如何与SurfaceFlinger建立联系? 6.3 生产者和消费者之间的纽带 6.4 SurfaceFlinger的工作流程分析 6.5 Transaction分析 6.6 CameraService中的严重bug 6.7 PageFlip过程分析 一 JNI重难点分析 1 JNI是什么? 1.1 注册方法的选择 什么是注册? 两种方法: 1 静态法 2 动态法 静态方法工作原理探析及其弊端 工作原理 当Java层调用native_init函数时,它会从对应的JNI库Java_android_media_MediaScanner_native_linit,如果没有,就会报错。如果找到,则会为这个native_init和Java_android_media_MediaScanner_native_linit建立一个关联关系,其实就是保存JNI层函数的函数指针。以后再调用native_init函数时,直接使用这个函数指针就可以了。 动态方法 Quick Question: 1 什么时候,在哪儿注册JNINativeMethod数组? 1.2 垃圾回收 例子: Local Reference:本地引用。在JNI层函数中使用的 非全局引用对象都是Local Reference。它包括函数调 用时传入的jobject、在JNI层函数中创建的jobject。 Local Reference最大的特点就是,一旦JNI层函数返 回,这些jobject就可能被垃圾回收。 二 init重难点分析 Android对init进行了大规模改进……,但还是少不了要解 析配置文件init.rc。 2.1 keywords.h的用法 两次include keywords.h Result: 2.2用好“DllMain函数”——客户端Property读取的实现 Android平台提供系统级别的属性管理和控制 Dive into code Dive into code Any Questions about init? 四 Android常用类重难点分析 代码中漫天可见的 RefBase、sp and wp 到底是 什么? 3.1 Sample One:初识影子对象 sp的构造 wp的构造 wp的析构 Sample 1 sum up: 生死魔咒extendObjectLifetime 3.2 题外话——无所不用其极 我的烦恼: 1 RefBase,sp和wp:共两个文件,1千行左右的代码。--不多,真正参与分析的代码应该不到400行。 2 判断极为复杂,打log也不方便,影响整个系统。——对于这类逻辑复杂的代码,打log实为下策。 冥思苦想……,any good ideas? 四 Binder重难点分析 BinderBinder听烦了没?见恶心了没? 4.1 时空穿越魔术揭秘 defaultServiceManager分析 BpBinder分析 障眼法——interface_cast Binder理解的重点:区分业务和通信 不是一家人,不进一家门……. BpBinder的transcat分析 真相揭秘——如何完成真正的binder通信 如此看来,IPCThreadState是关键 executeCommand分析 4.2 Binder和线程的关系 Question Answer 关于方法论: Thanks all of you! 我的解决办法: 1 直观想法,要是能够调试该多好! 问题
您可能关注的文档
- 罗兰贝格--浙江移动通信深入了解浙江移动市场讨论稿课件.ppt
- 联通BSS系统操作系统课件.ppt
- 毛概 ——关于贫富差距的讨论课件.ppt
- 美通无线公关传播提案课件.ppt
- 目标管理(PPT_45页)课件.ppt
- 梁老师备课八年级历史下册第15课《独立自主的和平外交》课件.ppt
- 培训与开发重点复习资料课件.ppt
- 内训师培训课程课件.ppt
- 企业电子商务管理实习课件.ppt
- 企业电子邮件沟通规范和技巧课件.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)