摘要:Android中Linux suspend/resume流程首先我们从linux kernel 的suspend说起,不管你是使用echo mem > /sys/power/state 或者使用你的开发板已经拥有的power key 都可以实现系统进入suspend的功能,这是suspend的基础,即控制系统使suspend得到执行的机会,这里相信大家都可以理解,不再过多说明。那么suspend得到了执行的机会又是怎么一步一步开始往下执行的呢?现在就开始我们的系统的电源管理之旅:我们就通过echo mem > /sys/power/state这种方式来看,这样更容易被理解,位于/s
阅读全文
摘要:本文基于Linux™系统对进程创建与加载进行分析,文中实现了Linux库函数fork、exec,剖析内核态执行过程,并进一步展示进程创建过程中进程控制块字段变化信息及ELF文件加载过程。一、初识Linux进程 进程这个概念是针对系统而不是针对用户的,对用户来说,他面对的概念是程序。当用户敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。但和程序不同的是,在这个进程中,系统可能需要再启动一个或多个进程来完成独立的多个...
阅读全文
摘要:简介:本文根据 Linux™ 系统工作基础的分析,对存储程序计算机、堆栈(函数调用堆栈)机制和中断机制进行概述。文中将为您提供操作系统(内核)如何工作的细节,进一步从宏观概述结合关键点进行微观(CS:EIP、EBP/ESP等的变化)分析。一、存储程序计算机 首先让我们了解一下,什么是存储程序计算机,并对存储程序计算机的整个运行过程及所需的硬件组件进行简单介绍 上图是程序存储计算机的物理框架,主要包含CPU(包含各类寄存器,如程序寄存器,指令寄存器...
阅读全文
摘要:我是2007年初加入Facebook,那时大概150人;2011年9月底离开,当时3200多人.经历了很多稀奇古怪但影响很大的项目,像ApplicationPlatform,SocialAds,NewsFeed,GiftShop,FacebookCredits等等.碰到的很多的问题都是全新的,规模是互联网历史上最大的.当时的心惊肉跳现在回想起来是很让人怀念的旧时光.到我离开Facebook的时候,我负责支付安全和工具研发部门还有部分的支付后台研发组.现在我在全职做天使投资,给看对眼的团队在早期产品技术团队搭建给予一些力所能及的帮助.有兴趣的朋友可以关注我的微博@王淮Harry哥.在Facebo
阅读全文
摘要:在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 下面是本例子要解析的XML文件:文件名称:itcast.xml例子定义了一个javabean用于存放上面解析出来的xml内容, 这个javabean为Person。javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于An.
阅读全文
摘要:Apk文件结构 apk文件实际是一个zip压缩包,可以通过解压缩工具解开。以下是我们用zip解开helloworld.apk文件后看到的内容。可以看到其结构跟新建立的工程结构有些类似。java代码:|-- AndroidManifest.xml|-- META-INF| |-- CERT.RSA| |-- CERT.SF| `-- MANIFEST.MF|-- classes.dex|-- res| |-- drawable| | `-- icon.png| `-- layout| `-- main.xml`-- resources.arsc复制代码 Manifest文件 Android...
阅读全文
摘要:Androidapk文件,即Android application package文件。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk,其中包含了应用的二进制代码、资源、配置文件等。APK文件其实是zip格式,但后缀名被修改为apk,在Android 系统安装时,APK 程序会被存放在系统默认的APP 目录中。既然是一个Zip压缩包,那我们就不妨先解压出来看看其目录结构和内容,在我这我以NDK中的two-libs为例,以NDK为例,主要是要在本文中介绍SDK和NDK结合打包的方法。先看图:其实这个目录结构与源代码的目录结构类似,接下来我们对比看看源代码(我
阅读全文
摘要:Android虚拟机DalvikDalvik冲击随着Google 的AndroidSDK 的发布,关于它的API 以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举。不过,其中的一个话题在Java 社区是一石激起千层浪,这就是Android 平台的基础——Dalvik 虚拟机。Dalvik和标准Java虚拟机(JVM)首要差别Dalvik 基于寄存器,而JVM 基于栈。,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。Dalvik和Java运行环境的区别Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的L
阅读全文
摘要:解析Android消息处理机制——Handler/Thread/Looper & MessageQueueKeywords: Android Message HandlerThread Looper UML 本文解析Android如何利用Handler/Thread/Looper以及MessageQueue来实现消息机制的内部实现。知道了它的内部实现机理之后,以后再遇到使用它们时候的任何问题就驾轻就熟、迎刃而解了。 Android利用执行在HandlerThread线程中的Looper的相应消息分发/处理,与其他线程中的消息发送结合,实现完整的消息处理机制。本文首先介绍这些消息处理过程
阅读全文