Android深入学习
文章平均质量分 92
流云易采
硕士
展开
-
Service绑定形式启动过程
一、绑定形式Service的使用1)定义一个Service,注意重写onBind方法,返回一个IBinder对象public class MyService extends Service { public static final String LOG_TAG = "LOG_TAG"; private MyBinder mBinder = new MyBinde原创 2016-01-18 10:56:46 · 1414 阅读 · 0 评论 -
View机制深入学习(四)View的事件分发机制
当发生点击事件后,事件会最先传递给当前的Activity,Activity调用dispatchTouchEvent来进行事件的dispatch;1、Activity#dispatchTouchEvent:/** \frameworks\base\core\java\android\app\Activity.java **/public boolean dispatchTo原创 2015-11-16 15:10:26 · 1192 阅读 · 0 评论 -
View机制深入学习(五) 事件处理机制一
以TouchEvent为主,看一下View和ViewGroup内部是如何处理Input Events的; 首先来看事件的产生来源:一、获取事件:事件的来源可以分为“软件”,“硬件”两种; 主要的事件包含有: 按键事件(KeyEvent) :即物理按键按下产生的事件,相关的常用物理按键一般有HOME,BACK等 触摸事件(TouchEvent): 鼠标事件(MouseEvent)、轨原创 2016-05-10 17:26:37 · 2305 阅读 · 0 评论 -
View机制深入学习(一)
函数调度:(基于Android5.1)1、ActivityThread类中有一个handleLaunchActivity的函数,该函数是创建Activity的地方。/** \frameworks\base\core\java\android\app\ActivityThread.java**/private void handleLaunchActivity(Ac原创 2015-09-13 20:11:57 · 1387 阅读 · 0 评论 -
View机制深入学习(二)——View树的遍历
一、遍历View树的入口是ViewRootImpl的scheduleTraversal函数/** \frameworks\base\core\java\android\view\ViewRootImpl.java **/void scheduleTraversals() { if (!mTraversalScheduled) { // 判断当前是否已经在做遍历原创 2015-09-16 09:59:12 · 2947 阅读 · 0 评论 -
View机制深入学习(三) View中的消息传递及InputManagerService
以TouchEvent为主,看一下View和ViewGroup内部是如何处理Input Events的;一、View中TouchEvent的投递过程: 现在版本的Android中、事件处理者已经不由InputEventReceiver来承担,而是通过多种形式的InputStage来进行分别处理。如:final class SyntheticInputStage e原创 2015-09-19 19:30:14 · 8650 阅读 · 0 评论 -
Activity组件启动过程(二)
前面启动过程图:(源码基于Android5.1) 获得到ActivityManagerProxy的实例后,会通过ActivityManagerProxy将启动Activity组件的相关信息写入到Parcel对象data中,然后发送一个类型为START_ACTIVITY_TRANSACTION的进程间通信请求给AMS(ActivityManagerService),接下来的工作原创 2015-08-30 16:39:50 · 1956 阅读 · 1 评论 -
Activity组件启动过程(三)
承接上面文章《Activity组件启动过程(二)》中的分析,继续进去看startSpecificActivityLocked:11、ActivityStackSupervisor#startSpecificActivityLocked:/** @path: \frameworks\base\services\core\java\com\android\server\am\ActivityS原创 2015-12-28 16:44:27 · 1280 阅读 · 0 评论 -
Service组件的启动机制深入学习
一、通过startService方式启动1、ContextWrapper#startService:/** @path: \frameworks\base\core\java\android\content\ContextWrapper.java **/@Overridepublic ComponentName startService(Intent service) {原创 2016-01-12 10:51:09 · 1117 阅读 · 0 评论 -
Android启动过程——init,Zygote,SystemServer
一、Android设备启动经历的三个阶段:Boot Loader;Linux Kernel;Android系统服务;每个阶段都有自己的启动画面。1、Android中第一个被启动的进程——init,init进程的PID为0,其他的服务都由其进行创建。它是通过解析init.rc脚本来构建出系统的初始运行状态的。init进程是在系统启动启动过程中启动的。2、init.rc语法规则:1)Act原创 2015-08-18 11:12:29 · 3948 阅读 · 0 评论