Android内核剖析
文章平均质量分 83
leach-chen
欢迎大家一起交流技术
展开
-
源码分析异步消息处理线程机制(Looper MessageQueue Handler Message)
异步消息处理线程:主线程创建后会创建一个Looper对象,创建Looper对象的同时会创建一个消息队列MessageQueue。然后会进入消息循环,不断轮询MessageQueue。获取到消息后会个Handler去处理,Handler也可以给MessageQueue中发送消息。当MessageQueue中没有了消息时,线程会挂起。 那么我们根据源码分析下它的执行过程。原创 2016-01-15 09:23:15 · 924 阅读 · 0 评论 -
FrameWork概述
在Framework框架中包含三部分。分为服务端、客户端、linux驱动。服务端:主要包含两个重要的类WindowManagerService(WmS)ActivityManagerService(AmS)主要用于管理所有应用程序中的Activity。 还有两个消息处理类KeyQ类:该类为WmS的内部类,集成于KeyInputQueue类,KeyQ类对象一旦创建,就立即启动原创 2016-04-05 14:27:38 · 1098 阅读 · 0 评论 -
Context
Context被译为上下文,可理解为场景,一个场景就是用户和操作系统交互的一种过程,如打电话场景包括电话对应的界面,还有隐藏在界面后的数据。Context是一个抽象类,Activity基于Context,Service也基于Context。Activity除了基于Context,还实现了一些其他重要的接口。从设计的角度看,interface仅仅是某些功能,而extends才是类的本质,即Activ原创 2016-04-05 17:33:32 · 428 阅读 · 0 评论 -
Android 插件式开发
Android插件式开发,顾名思义,就是有多个程序,其中有一个主程序,其它程序我们称之为插件。主程序在系统中有图标,其它程序在系统中没有图标,但可以独立安装。其它程序都被主程序所加载。发布的时候只需发布主程序就可以了。其它程序可以根据对服务器的请求,在主程序中动态扩展与升级。以下主程序我们称之为Host程序,插件程序称之为Plugin程序。下面有提供测试源码,附上贴图。那我们来看看如何实现插件式开原创 2016-01-30 17:12:57 · 1424 阅读 · 0 评论 -
Binder与Service 通信机制详解四 (源码分析AIDL工作机制)
这一篇我将给大家讲解AIDL是如何使得服务端和客户端能够进行通信的。我上传了一份简单的源码,实现了不同进程服务端和客户端进行通信。大家在看这篇博客的时候务必要将这份源码导入工程跑起来。跟着讲解一步步走。当然,在阅读这篇文章的时候,最好讲博客一到三看一遍。未完待续..........原创 2016-01-09 11:20:21 · 1136 阅读 · 0 评论 -
JNI & NDK 实例讲解一 (不通过NDK创建JNI项目)
什么是JNI?什么是NDK,JNI 和 NDK 之间有什么关系? 什么是JNI:JNI的全称是 Java Native Interface。它提供了一些API,用于实现Java 和其它语言之间进行相互调用(一般是指c/c++)。 一般有以下三种情况需要c/c++的协助 a:调用驱动,由于操作系统所提供的驱原创 2016-01-10 15:59:45 · 603 阅读 · 0 评论 -
JNI & NDK 实例讲解二 (通过NDK创建JNI项目)
上一篇博客中有讲解关于JNI NDK是什么以及他们之间的关系。并且通过原始方式讲解了一个JNI项目的创建过程。那么这一篇博客我们将讲解NDK的开发环境的搭建,及如何通过NDK来开发一个JNI项目。 首先我们来看下如何在Eclipse下搭建一个NDK开发环境(现在Android studio越来越流行,其很多功能也比Eclipse强大,有时间再补上Android studio原创 2016-01-11 10:44:44 · 800 阅读 · 0 评论 -
Binder与Service 通信机制详解三 (服务端和客户端设计)
上一篇博客讲解了关于Service和Binder基本概念的理解与工作机制。或许有些人在头脑里有了大概基本的概念,或许有些人还一头雾水。不管怎样,都没关系,我们接着往下看。 这一章基于对上一章节的理解来设计服务端和客户端。 设计服务端 设计服务端,在我们原来写过的自定义服务当中服务是继承Service的,在Service里面,系统帮我们原创 2016-01-08 16:10:21 · 2179 阅读 · 0 评论 -
Binder与Service 通信机制详解二 (Binder与Service理解)
本节主要是解释一个各个要点,最后会结合代码,把各个要点呈现到代码中给大家理解,所以大家务必理解这些知识点。 了解Binder与Service 通信机制之前我们需要先了解什么是Binder,什么是Service? 什么是Service? Service顾名思义,就是系统提供给我们的没有用户界面,可以在后台默默的为我们服务的一个东西。当原创 2016-01-08 14:34:44 · 2057 阅读 · 0 评论 -
Binder与Service 通信机制详解一 (前言)
以前就想着要开始写博客记录一些东西,之前在网易博客里写过几篇,但是后面就没有然后了。现在从新开始在csdn里面写,我觉得这个还是得坚持,把东西记录下来,也方便以后查阅。 最近在看柯元旦的《Android内核剖析》,感觉这本书还是不错的。对于想要进阶或者想了解android底层工作原理的工程师建议大家可以看看这本书。当然我还看到别人推荐的其它一些关于android底层的书籍,如原创 2016-01-08 12:58:02 · 853 阅读 · 0 评论 -
Android窗口创建过程
1:创建应用窗口首先需要创建一个Activity对象。当AmS决定启动某个Activity时,会通知客户端进程,每个客户端进程对应一个ActivityThread类,Activity的启动任务由ActivityThread来完成。启动Activity首先需要创建一个Activity对象,并使用ClassLoader从程序文件中装载指定的Activity对应的class文件。在ActivityT原创 2016-04-06 17:25:12 · 837 阅读 · 0 评论