内容简介编辑《android的设计与实现:卷i》是android应用开发工程师和android系统工程师进阶修炼的必读之作。
它由资深android内核专家亲自执笔,从源代码角度,系统、深入、透彻剖析android系统框架层(framework)的设计思想和实现原理,为android应用工程师和系统工程师解决实际工作中的各种难题提供了原理性的指导。
为了降低读者的阅读成本,《android的设计与实现:卷i》使用了大量简单的uml类图和序列图来展示类的层次结构和方法的调用流程,使读者能迅速读完《android的设计与实现:卷i》并领会其精髓!“android的设计与实现”系列丛书主要围绕android系统的四层结构展开,通过源代码来分析各层的设计思想与实现原理,卷i则主要是针对framework(框架层)的。
全书共12章,分为六个部分:基础篇(第1~2章)详细讲解了android的体系结构、源代码阅读和调试环境的搭建,以及整个框架的基础;
启动篇(第3~4章)深入分析了android启动过程的机制和实现原理,能帮助读者全面理解框架层系统服务的运行基础;
binder篇(第5~6章)着重分析了binder在native框架层和java框架层的机制和实现,能让读者深入理解进程间的通信模型;
消息通信篇(第7章)重点分析了android的消息驱动和异步处理机制,能让读者深入理解线程间的通信模型;
packagemanager篇(第8~9章)主要讲解了packagemanager的机制与实现,以及apk的安装方法与过程;
activitymanager篇(第10~12章)深入阐述了activitymanagerservice的运行机制、应用程序和进程的启动流程,以及进程管理机制。
《android的设计与实现:卷i》适合中高级的android应用开发工程师、android系统开发工程师、android系统架构师,以及负责对android系统进行调试和优化的工程师们阅读。
3前言编辑为什么要写《Android的设计与实现:卷I》  Android从2007年问世至今,不仅在各个应用领域发展得如火如荼,其图书市场也是一片“兴旺”,各个层次、各种类型的Android图书的需求都比较旺盛。
目前市场上已经有的图书主要分为以下三类:  针对AndroidSDKAPI使用的描述  针对Android系统架构各部分的描述  针对Kernel移植的描述  其中鲜有针对Android四层架构中某一层进行深入挖掘的图书,这让读者有一种只能窥其全貌,却不能独得一隅的遗憾。
  框架层是整个Android系统的灵魂,这一层起着承上启下的作用,是理解整个Android的关键,也是解决Android应用层Bug的关键。
要开发一款精品手机,就必须深入理解这一层。
  国际知名的手机厂商对手机品质有着近乎苛刻的要求,手机必须在严格的测试环境下运行数百小时无问题方可上市销售。
这期间出现的稳定性(ANR、Crash、Watchdog)、内存(OOM)、性能等问题都让人十分头痛。
这些问题主要来自于应用程序、Framework、Dalvik虚拟机、LinuxKernel、Driver以及Modem,其中相当大一部分问题源自对Framework的错误理解和使用。
举例如下:  解决KeyDispatchTimeout类型的ANR,需要熟悉ActivityManager、Input消息处理系统的机制。
  解决应用程序IDLE状态时发生的ANR,需要熟悉ActivityManager、Binder的运行机制。
  解决框架层的Watchdog问题,需要熟悉Android启动阶段开启的系统服务和Watchdog的运行机制。
  解决应用程序的性能问题,同样需要理解框架层的运行和调度机制。
  上述问题只是冰山一角,仅仅停留在使用SDKAPI的层次是不可能解决上述问题的。
因此,非常需要一本能深入挖掘框架层的专著。
  针对以上问题,编写“Android的设计与实现”系列丛书,对Android核心模块和主要问题进行深入分析。
其中卷I的主题是启动和通信,主要分析Android运行环境、PackageManager、ActivityManager、Binder和消息机制等核心模块。
卷Ⅱ的主题是资源和UI,主要分析ContentProvider、Resource、ViewSystem、WindowManager、SurfaceFlinger等核心模块。
  读者对象  《Android的设计与实现:卷I》主要分析了Android框架层主要部分的体系结构和实现原理,让读者对Framework有一个清晰的理解,并以此增强解决
2024/5/21 8:05:22 55.77MB Android 设计与实现 卷1 带完整书签
1
教育部考试中心通知,自2018年9月起,在计算机二级考试加入了“Python语言程序设计”科目。
Python3.5.2版本以上及IDLE。
安装方法(已经安装过Python的直接绕过第一二步):第2步:python.org下载Python3.5.2原版第2步:安装,一路Next第3步:完成汉化。
打开Python安装目录/lib,把旧的idlelib目录替换下载解压后的idlelib即可。
2024/5/6 16:49:50 335KB Python IDLE汉化版 等级考试 二级考试
1
http://blog.csdn.net/wangkangluo1/archive/2011/05/11/6411641.aspx[原创]Redhat上FastCGI安装与配置软件包相关软件包:httpdhttpd-develfcgi-2.4.0.tar.gzmod_fastcgi-2.4.6.tar.gz请仔细阅读其中的README配置httpd.conf:LoadModulefastcgi_modulemodules/mod_fastcgi.soAddHandlerfastcgi-script.fcgi#youcanputwhateverextensionyouwantFastCgiIpcDir/tmpFastCgiServer/home/m/Dev/cvs/ImRoBot5/shdaily/cgi/shdaily.fcgi-processes1-idle-timeout1000
2024/5/4 3:37:29 458KB apache fcgi
1
STM32F103串口使用空闲IDLE中断接收不定长数据程序
2024/4/12 22:30:04 1.7MB stm32F103 idle usart
1
1. 楼层由上至下依次编号为9,8,7,6,5,4,3,2,1,0。
每层都有向上和向下两个按钮,对应20个变量callup[0...9]和calldown[0...9]。
电梯内10个目标层按钮对应变量out[0...9]。
有人按下某个按钮时,相应的变量就增1,一旦要求满足后,该变量就减1。
当有多人的需求相同时,相应的处理时间就增长,用于模拟真实的情况。
2. 电梯处于三种状态之一:UP(上行),DOWN(下行)和Idle(等候)。
如果电梯处于Idle状态且不在1层超过20个时间单位时,则驶回1层。
当电梯处于Idle状态时,一旦收到前往另一层的命令,就转入UP或DOWN状态,执行相应的操作。
3. 其它重要的变量有:floor----当前电梯外乘客所在楼层;
calling----当前电梯外按下按钮的乘客所在的楼层;
up_or_down----电梯外某层按钮的状态(向上箭头或向下箭头);
waittime----电梯空闲时的等待时间;
total----电梯内的总人数(上限为15人);
电梯的数据结构:state----电梯的状态(UP,DOWN,IDLE)current-----电梯目前所处楼层imovingto----电梯的目标楼层队列成员的数据结构:floor―――所在楼层up_down―――目标方向(向上或向下)structqueue*next―――指向下一个成员4. 【进入排队】先在等候队列中查找,若有信息相同(所在楼层相同,目标方向一致)的成员,则对队列无任何操作。
若没有,则在队列末尾插入该人。
5. 【进入电梯】电梯根据人数停留一定时间单位,每进入一个人,从队列中删除该人,callup[ele.current]或者calldown[ele.current]减一,total加一。
6. 【走出电梯】电梯根据人数停留一定时间单位,每出去一个人out[ele.current]减一.7. 【电梯的活动】E1.[在一楼停候]若有人按下一个按钮,则调用相关函数(比如入队,置楼层标志位为1等)处理当前事件.E2.[改变状态]如果电梯处于Up(或Down)状态,但该方向的楼层却无人等待,则要看反方向楼层是否有人等待,而决定置State为Down(或Up)还是Idle。
E3.[让人出入]如果电梯不空且out[ele.current]!=0时,则电梯等候在该楼层出电梯的人离开。
接着检验在该楼层是否有等候前往同一方向去的乘客,若有则等候他们进入电梯。
总原则是先下后上。
E4.[在某楼层(非1楼)停候]若电梯到达目标楼层后,队列为空,则电梯在该楼层停候一定时间,在停候期间若有新的呼叫,则立即转入处理程序处理,否则返回一楼停候。
8. 电梯在上升或下降过程中需要不停地对当前方向上的最终楼层作调整。
比如当前向上,最终楼层为6楼,而有乘客在8楼按了按钮,则最终楼层调整为8楼。
相反方向同理。
2024/4/2 8:05:07 59KB 电梯模拟 用C语言写的
1
Python学生成绩管理系统源码+.exe,Pycharm及自带IDLE完满运行,可用来应付大作业或作为基础学习,内含心得体会以及细节注释,易根据自身需要修改,源码在system文件夹里
2019/11/10 9:33:44 11.42MB python exe 源码
1
需要文本打开文件把pythonw.exe和idle.pyw路径改成本人的实际路径,保存退出后双击运行一路点是。
2019/8/14 23:15:07 312B python anaconda IDLE
1
STM8L051单片机实现串口空闲终端接收数据,并将数据回传PC机
2020/4/17 11:10:48 6.89MB STM8 C语言 IAR
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡