- 博客(9)
- 资源 (32)
- 收藏
- 关注
原创 Android 内核 - 05 SystemServer
概要SystemServer 由 ZygoteInit 创建的第一个子进程,负责系统管理framework\base\services\java\com\android\server\SystemServer.javaSystemServer.java中其实包含了两个 class, SystemServer 和 ServerThread。Sy
2016-03-27 21:57:25 492
原创 Android 内核 - 04 Framework 的启动
从Linux的角度看,Android只是Linux中的一个应用程序而已。启动Android便是启动一系列的服务和应用模块。从这个角度去理解Android的启动过程会使问题变得简单点。先启动一个原始进程,加载必要的资源,建立原型,并开启socket等待命令(进程间通信的一种手段)当原始进程收到命令时,把原始进程的资源信息复制一份,fork一个子进程以节省启动时间。
2016-03-26 21:59:46 541
原创 Android 内核 - 03 创建应用窗口 和 子窗口
Android 的窗口分三类,应用窗口,子窗口,系统窗口,这里整理的是应用窗口和子窗口的创建。应用窗口每个Activity会对应着一个窗口。应用窗口的创建,相当于是 Activity,Window(PhoneWindow), WindowManager,WindowManagerImpl,和 View相互关联,并建立互动的一个过程。可以把这个过程分成两个部分,初始化设置和与
2016-03-17 22:17:35 1099
原创 Android 内核 - 02 Context
理解 Context上下文,环境,场景,一个动态的过程,用户和Android系统交互的一次过程。Context贯穿整个App,理解它的源码,可以比较好的理解一个App的执行过程。一个Activity或一个Service本质上就是一次与用户交互的,一个Activity或一Service就对应着一个Context。Context 个数 = Service个数 + Activ
2016-03-17 22:07:31 398
原创 Android 内核 - 01 Binder
Binder 概述Binder是一种架构,一种进程间通信(IPC)的机制,它工作在Linux内核层面,属于驱动层的一个模块。但它其实并不是与硬件打交道,是上层消息转发的一个通道。工作在内核层效率更高。Binder的应用在这种架构中有三个模块,服务端接口,Binder驱动,客户端接口。服务端接口:是Binder的一个对象,向客户
2016-03-17 21:56:59 402
原创 编程之美 - 寻找灌水王及扩展问题
问题描述:在一个论坛中,一个ID发的帖子超过了半数,问怎样能快速的找出这个ID。算法描述:书中给出了几种不同的思考方式,1) 先排序,然后逐个统计2) 排序后,第 N/2个元素一定是这个ID最好的方式是第三种,每次删除两个不同的ID,那么水王的ID在剩下的列表中仍然超过一半。或者可以这样理解 假设总共有10个帖子,6个是水王的,假设水王的
2016-03-17 20:23:06 672
原创 编程之美 - 抓石头游戏(3)
游戏规则: 有两堆石头,玩家A 和 B,两个人可以从一堆石头中取任意数目的石头或从两堆石头中取相同数量的石头。最后取得所有石头的人胜。书中的分析:从最简单的情况入手只有一块石头 == > 先拿的一定会赢。如果两堆石头数目相等 X:X ==> 先拿的一定会赢。如果两堆石头数目为 1 和 2 ==> 先拿的一定会输。那么1 和 2 就
2016-03-11 08:57:09 1201
原创 趣味算法-求波峰波谷最大值
给一个数组,求它的最大的波峰波谷的落差。举例:数组 A={2, 3, 6, 5, 7, 9}, 其中 6 和 9 被看做是波峰,2和5则是波谷。D[2, 6]=4, D[6,5]=1, D=[5,9]=4. 则 Thus, MaxD(A)=4.想法:波峰不一定是数组中的最大值,他是趋势向下的转折点,波谷也不一定是数组中的最小值,他是趋势向上的转折点。数组中最边上的两个元素比较特殊
2016-03-07 20:36:20 14751
原创 趣味算法-0的迷宫
一个 5*5的矩阵,其中包含0-24 25个数字,数字在矩阵中没有顺序,其中0比较特殊,它可以和上下左右不同的数字进行交换,但一定在矩阵的范围内。0和上面的元素交换可以用 "U"表示;0和下面的元素交换可以用 "D"表示;0和左面的元素交换可以用 "L"表示;0和右面的元素交换可以用 "R"表示;举例:[20, 18, 7, 19, 10 24, 4
2016-03-07 20:14:35 446
实例代码 学习libgdx - SpriteBatch
2014-06-23
多核编程第6章-实例代码
2012-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人