自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 JAVA/Android Concurrency学习笔记

Thread SafetyWriting thread-safe code is, at its core, about managing access to state, and in particular to shared, mutable state.An object’s state encompasses any data that can affect its externally v

2016-11-30 18:20:02 919

原创 Android IPC

Android OS的核心设计思想是component,而支持component的基石则是Inter-component-communication/Inter-process-communication,而不同抽象层次的ICC/IPC都是由Binder来实现的。 从概念上来说,Binder采用C/S通信Model。传送的数据存放于Transaction中,为了能把不同结构的数据放入Transac

2016-11-10 15:47:02 457

原创 Android的Graphic System

Android gfx system的核心是一个生产者消费者模型:生产者消费者分别存在于不同的进程,消费者对应SurfaceFlinger,生产者对应application或者其他service。在生产者消费者之间流动的是用来显示的数据。1. GFX ARCH1.1 总体结构1.2 数据流模型 The diagram above depicts the flow of SurfaceFlinger

2016-11-03 11:21:03 578

原创 跟着Innost理解下与Activity相关的UI控件系统

Android的控件系统封装了: · 测量各个UI元素(一段文字、一个图片)的显示尺寸与位置。 · 对各个UI元素进行布局计算与绘制。 · 当显示内容需要发生变化时进行重绘。出于效率考虑,必须保证重绘区域尽可能地小。 · 分析InputEventReceiver所接收的事件的类型,并确定应该由哪个UI元素响应这个事件。 · 处理来自WMS的很多与窗口状态相关的回调。控件系统可以分

2016-10-31 10:30:11 1630

原创 跟着Innost理解下Android输入系统

Android输入系统的工作原理,包括输入设备的管理、输入事件的加工方式以及派发流程。本章的探讨对象有两个:输入设备、输入事件。 触摸屏与键盘是Android最普遍也是最标准的输入设备。其实Android所支持的输入设备的种类不止这两个,鼠标、游戏手柄均在内建的支持之列。当输入设备可用时,Linux内核会在/dev/input/下创建对应的名为event0~n或其他名称的设备节点。而当输入设备不可

2016-10-27 13:47:51 472

原创 跟着Innost理解下WindowsManagerService

WMS为所有窗口分配Surface,掌管Surface的显示顺序(Z-order)以及位置尺寸,控制窗口动画,并且还是输入系统的一重要的中转站。窗口(Window):Android系统中的窗口是屏幕上的一块用于绘制各种UI元素并可以响应应用户输入的一个矩形区域。从原理上来讲,窗口的概念是独自占有一个Surface实例的显示区域。例如Dialog、Activity的界面、壁纸、状态栏以及Toast等都

2016-10-27 10:18:04 550

原创 跟着Innost理解下数据更新、数据同步

本章将先分析ContentService中数据通知机制的实现,然后分析AccountManagerService,最后再介绍ContentService中的数据同步服务。ContentService包含以下两个主要功能: · 它是Android平台中数据更新通知的执行者。数据更新通知与Cursor,query函数实现时提到的ContentObserver有关。 · 它是Android平台中数

2016-10-18 15:29:40 1223

原创 跟着Innost理解下ContentProvider

重点分析ContentProvider、SQLite、Cursor query、close函数的实现及ContentResolver openAssetFileDescriptor函数。四条分析路线。 · 第一条:以客户端进程通过query来查询相关信息为入口点,分析系统如何创建和启动ContentProvider。此分析路线着重关注客户端进程、ActivityManagerService及Me

2016-10-17 16:48:47 608

原创 跟着Innost理解下Service 的启动以及与AMS的交互

作为四大组件之一Service,其响应Client的请求方式有两种: · Client通过调用startService向Service端发送一个Intent,该Intent携带请求信息。而Service的onStartCommand会接受该Intent,并处理之。该方式是Android平台特有的,借助Intent来传递请求。 · Client调用bindService函数和一个指定的Serv

2016-10-17 14:33:25 466

原创 跟着Innost理解下Broadcast和BroadcastReceiver

目前,系统提供两种方式来声明一个广播接收者。 · 在AndroidManifest.xml中声明标签。在应用程序运行时,系统会利用Java反射机制构造一个广播接收者实例。本书将这种广播接收者称为静态注册者或静态接收者。 · 在应用程序运行过程中,可调用Context提供的registerReceiver函数注册一个广播接收者实例。本书将这种广播接收者称为动态注册者或动态接收者。与之相对应,当

2016-10-17 11:19:43 700

原创 跟着Innost理解下Activity 的启动以及与AMS的交互

此次旅程: · 行程的起点是am。am是Android中很重要的程序,读者务必要掌握它的用法。我们利用am start命令,发起本次目标Activity的启动请求。 · 接下来进入ActivityManagerService和ActivityStack这两个核心类。对于启动Activity来说,这段行程又可分细分为两个阶段:第一阶段的主要工作就是根据启动模式和启动标志找到或创建Activi

2016-10-17 11:06:32 1249

原创 跟着Innost理解下ActivityManagerService

SystemServer中AMS的调用轨迹 以am命令启动一个Activity为例,分析应用进程的创建、Activity的启动,以及它们和AMS之间的交互等知识 分别以Broadcast和Service为例,分析AMS中Broadcast和Service的相关处理流程 以一个Crash的应用进程为出发点,分析AMS如何打理该应用进程的身后事 AMS中应用进程的调度、内存管理 Content

2016-10-12 14:18:44 548

原创 Android ART的运行

Android oat ELF oatdata:存储dex文件 oatexec:存储翻译成本地机器码的指令 details 加载oat 文件的过程Utils classes for oatloading 查找类/方法/native code过程概述 Boot images boot.art文件包含一些特殊的函数,这些函数会在ART虚拟机初始化image空间的时候,将其地址赋给相应的变量

2016-09-27 15:24:27 581

原创 Android JVM的运行过程

JVM有三重意思:java virtual machine specification,java virtual machine implementation, java virtual machine runtime instance. 作为Android系统的使用者,我们主要关心runtime instance,不过为了对JVM全貌有个了解,还是需要简要回顾一下JVM specification

2016-09-20 15:19:26 4265

原创 Android APK的安装过程

APK的存放目的地预装APK放在/system/app 或者/system/priv-app/; 用户后装APK放在/data/app/; 1. 放在/system/与放在/data/的区别在于: /system/对于非root是read only, 因此,放在/system/app或者/system/priv-app的APK通常没法删除。 2. 放在/system/app/与放在/system

2016-09-19 16:50:10 731

原创 Android APK的生成流程

第一次接触写Android APP, 不是太清楚Eclipse和AS自动化的的工作后面发生了什么,所以拜读老罗/炸斯特/Android Docs文章后,基于Android M上做个实践总结。 1. 重点是APK的生成流程。 2. Android APP的代码结构是这个流程起始的地方,它决定了APK生成的流程怎么走。 3. 整个流程的结果是一个APK以及对应的odex。Android APP的代

2016-09-18 15:47:52 546

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除