Android开发系列
阿拉神农
Hi my name is 邓凡平,my English name is innost. Nice to meet you
展开
-
关于鸿蒙OS的一些看法
缘起昨天晚上在CSDN做了一个关于鸿蒙OS的观点交流。可惜受限于宾馆的网络条件,有些想法没有表达清楚。再加上交流过程中,也从其他老师那了学到了一些观点。故写下此文。以下以QA方式对我(结...原创 2020-09-14 14:00:57 · 81359 阅读 · 223 评论 -
Android MediaScanner 详尽分析
MediaScanner分析一 MediaScannerService多媒体扫描是从MediaScannerService开始的。这是一个单独的package。位于packages/providers/MediaProvider:含以下java文件l MediaProvider.javal MediaScannerReceiver.javal MediaScannerService.javal MediaThumbRequest.java分析这原创 2010-12-18 08:17:00 · 38269 阅读 · 51 评论 -
Android深入浅出之Binder机制
<br />Android深入浅出之Binder机制<br />一说明<br /> Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。<br />我们这里将以MediaService的例子来分析Binder的使用:<br />l ServiceManager,这是Android OS的整个服务的管理程序<br />l Media原创 2011-01-08 21:27:00 · 34315 阅读 · 115 评论 -
Android深入浅出之Audio 第一部分 AudioTrack分析
<br />Android深入浅出之Audio<br />第一部分 AudioTrack分析<br />一目的<br />本文的目的是通过从Audio系统来分析Android的代码,包括Android自定义的那套机制和一些常见类的使用,比如Thread,MemoryBase等。<br />分析的流程是:<br />l 先从API层对应的某个类开始,用户层先要有一个简单的使用流程。<br />l 根据这个流程,一步步进入到JNI,服务层。在此过程中,碰到不熟悉或者第一次见到的类原创 2011-01-09 21:30:00 · 24493 阅读 · 30 评论 -
Android深入浅出之Audio 第二部分 AudioFlinger分析
<br />一目的<br />本文承接Audio第一部分的AudioTrack,通过AudioTrack作为AF(AudioFlinger)的客户端,来看看AF是如何完成工作的。<br />在AT(AudioTrack)中,我们涉及到的都是流程方面的事务,而不是系统Audio策略上的内容。WHY?因为AT是AF的客户端,而AF是Android系统中Audio管理的中枢。AT我们分析的是按流程方法,那么以AT为切入点的话,AF的分析也应该是流程分析了。<br />对于分析AT来说,只要能把它的调用顺序(也就是原创 2011-01-15 20:22:00 · 18062 阅读 · 17 评论 -
关于本博客字体问题,请放大150%看
<br />和浏览器有关系。我也不知道为啥会这样。<br />多谢各位的包容。原创 2011-01-17 20:04:00 · 4829 阅读 · 0 评论 -
Android深入浅出之Audio第三部分Audio Policy[1]
<br />农历新年快来到了,我希望能把android这个系列写完。<br />今天这篇帖子是农历年最后一篇了。大家如果有什么想了解的,可以回帖或者站内短消息,我们共同来分析Android。<br /> <br />Android深入浅出之Audio第三部分Audio Policy[1]<br />一目的<br />上回我们说了AudioFlinger(AF),总感觉代码里边有好多东西没说清楚,心里发毛。就看了看AF的流程,我们敢说自己深入了解了Android系统吗?AudioPolicyService(A原创 2011-01-22 19:35:00 · 15130 阅读 · 27 评论 -
Android深入浅出之Zygote[1]
<br />Android深入浅出之Zygote<br />一目的<br />zygote,是Android搞出来的一个东西。网上讲这个的也非常多。第一次看到这个名字我就挺郁闷,想干嘛这是?Linux下名字都取得挺通俗易懂,深得人心。zygote?不就想模仿Linux下的fork吗?个人觉得Google取名字挺怪,包括Google本身。<br />不管怎样,Zygote依然是Android系统的核心,zygote是受精卵的意思,可以认为是Android framework大家族的祖先!我们本节的目的是描述下原创 2011-01-26 21:01:00 · 10895 阅读 · 8 评论 -
Android深入浅出之Surface[1]
<br />Android深入浅出之Surface<br />一目的<br />本节的目的就是为了讲清楚Android中的Surface系统,大家耳熟能详的SurfaceFlinger到底是个什么东西,它的工作流程又是怎样的。当然,鉴于SurfaceFlinger的复杂性,我们依然将采用情景分析的办法,找到合适的切入点。<br />一个Activity是怎么在屏幕上显示出来的呢?我将首先把这个说清楚。<br />接着我们把其中的关键调用抽象在Native层,以这些函数调用为切入点来研究SurfaceFlin原创 2011-02-05 15:30:00 · 57586 阅读 · 96 评论 -
后期深入理解Android的安排
感谢各位网友的支持,经过最近几个月的思考,下面是将来一段时间,我在Android上的学习计划:1 目标为Android 2.3。这个版本相对于2.2有非常大的改变。2 Framework中的几个重要service。包括安装、四大组件的管理等。这些东西需要对操作系统原理有一定的了解原创 2011-07-23 07:57:39 · 6949 阅读 · 11 评论 -
深入理解Andorid 卷I 第五章
PDF版的下载见:http://download.csdn.net/source/3578482感谢CSDN及其热心支持的网友们,希望这本书是我对大家最好的回报。这一章重点解决sp,wp,refbase.handler,thread方面的内容。由于csdn的博客不能支持PDF,所原创 2011-09-06 10:21:10 · 12005 阅读 · 23 评论 -
开源中国北京聚会
PPT下载见:http://www.oschina.net/question/3307_27760原文见:http://www.oschina.net/question/3307_27422实在不好意思,发晚了.....下次大家可关注一下。人物:OSChina上生活的姐妹兄弟们,原创 2011-09-18 15:58:41 · 3986 阅读 · 2 评论 -
一个RGB565转Bitmap的程序
/* All Rights Reserved Author:fanping.deng@gmail.com Function: convert RGB565 to BMP Build by g++*/#include #include #include原创 2011-08-25 06:48:10 · 11254 阅读 · 13 评论 -
深入理解Android 卷I 提供预定(已经更新)
好消息,本书信息已经更新。http://product.china-pub.com/198566#qy希望得到大家的喜欢和支持。分类: Android深入浅出原创 2011-08-25 16:48:06 · 5679 阅读 · 23 评论 -
郑重声明:《深入理解Android 卷I》是一本真正的原创书籍
近来有不少读者向编辑反应:1 本书很多内容从网上可以搜索到。2 Binder一章从一个国外网站可以搜索到英文版(http://unknownerror.net/2011-06/mechanism-of-binder-layman-android-5-30302)这里要郑重声明一下原创 2011-09-28 06:45:43 · 8577 阅读 · 24 评论 -
《深入理解Android 卷I》 勘误表
2011-10-11第一次勘误特别感谢jdxwind网友的大力支持。对所有给本书提bug的童鞋们表示衷心的感谢。1. 目录XIII ——StartThread_Pool,joinThread_Pool。这两个单词中间的Pool没有空格。P149页中的目录项也需要修改。2.原创 2011-10-11 21:31:22 · 9236 阅读 · 41 评论 -
Android源码下载以及编译自己的ROM
最近发现kernel.org被墙了,为什么这种网站也能被墙了?要想下载源码的话,只能绕过去了。下面是我从网上搜索到的一些下载方法;===========================================================================原创 2011-10-18 20:57:38 · 11938 阅读 · 15 评论 -
比CM快!编译android4.0到HTC G7成功!
终于编译Android 4.0并成功部署到HTC G7了。特发文庆祝一下:1 下载源码: http://source.android.com/source/downloading.html2 将2.3源码中的device/htc copy到4.0对应目录下(4.0似乎没有htc了)3 修改修改修改.....以后发文详述4 choosecombo后,export下面这些东西PLATFORM_VERS原创 2011-11-16 15:25:15 · 13762 阅读 · 33 评论 -
移动用户体验设计中的原型应用
在现有的移动领域里,我们如何将“原型”的概念揉入到我们的设计中去呢?而现在确实有很多的Apps的设计,体现了原型概念的应用,归结起来,有以下几种形式:1.以应用程序为中心2.以活动为中心3.以时间为中心4.以情境感知(地理位置)为中心5.以任务为中心6.以情感为中心7.以人物特性为中心 1. 以应用为中心在这种移动用户体验的原型应用中,交互使用体验主要来自于应用程序。移动设备的操作系统是转载 2011-10-26 20:56:27 · 3146 阅读 · 0 评论 -
随笔之如何实现一个线程池
一 缘由: 最近因工作问题,需要实现一个简单的线程池,满足一下要求,可伸缩,即一旦发现线程不够用,则可以动态增加线程。(至于缩减线程,这个可能难度比较大,暂时不考虑)。支持超时任务。比如提交一个Task,可以设置5秒后执行,并且可以设置执行一次,还是每隔5秒执行。基本上就是这两个要求。下面讨论下实现上的问题。 二 Windows平台1 Windows平台实现一个线程池(不使用完成端口),我最原创 2011-11-24 11:45:16 · 6398 阅读 · 0 评论 -
随笔之Android平台上的进程调度探讨
随笔之Android平台上的进程调度探讨一由来最近在翻阅MediaProvider的时候,突然想起之前碰到的一个问题,该问题是这样的:一个Pad上有很多媒体文件,然后每次开机后的一段时间内,Home Screen的反应都特别慢,有时候还会报出ANR的错误。从ANR文件/data/anr/traces.txt分析,发现系统打印的cpu占有率中,android.process.media占用非常高。所原创 2011-11-06 10:47:16 · 28899 阅读 · 9 评论 -
随笔之POSIX cond和Windows同步对象Event的讨论
一 缘由最近在实现一个线程池的时候,需要用到POSIX中的cond和mutex进行线程间等待和同步,功能类似MS的同步对象Event。发现cond和mutex的连用还是挺不人性化的。说实话,MS在同步对象的API上,做得还是相当不错,文档也很清晰。Anyway,既然只能使用POSIX,就只能将就了。我这个线程池在实现中碰到以下2个问题:1 有n个线程等待一个事件。当有任务添加的时候,需要触发其中一原创 2011-12-07 15:38:58 · 5125 阅读 · 2 评论 -
请读者帮忙投个票喔
http://book.51cto.com/exp/bookrating2011/index.php谢谢大家了。原创 2011-12-15 16:04:14 · 3419 阅读 · 0 评论 -
Android 4.0 external下功能库说明
搞了半天android,竟然对external下的库一无所知?不能容忍!马上解决:android-mock:编译为java静态库。说明:Android Mock is a framework for mocking interfaces and classes on the Dalvik VM。资料http://code.google.com/p/android-mock/antlr:编译为jav原创 2012-01-10 17:37:36 · 14226 阅读 · 13 评论 -
深入理解android卷II 即将发布
深入理解android卷II即将发布。本书关注Android Framework Java层。由于内容庞大,本书只能涵盖其中一部分内容。下图是各章节初审的目录。希望大家喜欢,欢迎各位提BUG。本书基于Android 4.0.1原创 2012-04-23 07:27:07 · 8712 阅读 · 36 评论 -
android rom移植知识普及
最近接到很多兄弟们的求助,也回答过无数个和下面这个问题类似的问题:如何编译android 原生代码得到一个rom,然后跑到某某手机上。鉴于很多兄弟对这块不清楚,我这里一并简单回答之。1 ROM包含两个基本的image,一个是boot.image,这个image中主要是kernel和文件系统/目录下的一些东西。kernel我就不说了,/目录下主要是init和相关的配置文件system.image是a原创 2012-06-01 16:46:53 · 11260 阅读 · 19 评论 -
深入理解Android系列书籍的规划路线图
深入理解Android系列书籍的规划路线图一 Roadmap“深入理解Android“书籍从卷I推出以后就受到广大读者的喜爱。在和读者交流的过程中,笔者被问及最多的一个问题就是,卷II什么时候推出?内容会是什么?实际上,笔者和策划编辑杨福川在系列书籍的编写过程中,也在考虑这个问题:Android涉及到的内容简直是浩如烟海,然而,哪些知识点能帮助读者更快、更好得了解Android,从而一方面帮助大原创 2012-06-09 21:23:34 · 29579 阅读 · 57 评论 -
Android 4.1初识--7月12号
告诉大家一个不幸的消息,Android 4.1的代码变化非常非常大。忍不住想骂娘了。 绝对坑了我们这帮做FW的人如果能看懂深入理解android 卷I,可能还能搞4.1。唉,否则直接从4.1入手,难度会超大超大。下了代码后,立即看了AudioFlinger和SurfaceFlinger的实现。结构变化较大。有2.2的影子,但已经逐渐不多了。文件的位置也发生了重大变化。我不觉得能很容易得从4.0.4原创 2012-07-12 21:59:25 · 7136 阅读 · 2 评论 -
Android 4.1初识--7月13号
7月13号初略看了下:1 init没有太大变化,从init.rc可以看出规则未变,但init.rc出现了一些新的设置,看来更依赖kernel的一些信息了2 app_process未有太大变化,即zygote没有变化3 SystemServer变化很大,增加了几个奇怪的service,而且有些service的启动开始受到系统属性的控制了,例如 audioService受到"system_init原创 2012-07-13 10:23:36 · 8291 阅读 · 3 评论 -
深入理解android 卷II样章发布
感谢各位读者的耐心期待。今天将发布深入理解android样章,包括:1 目录2 第一章:主要讲述如何部署开发环境,如何调试SystemServer3 第7章:深入理解ContentProvider欢迎各位提bug,正式书籍,将在7月底上市。下载地址:http://download.csdn.net/detail/innost/4408144http://download.csdn.net/deta原创 2012-07-03 14:34:51 · 7910 阅读 · 12 评论 -
Android 4.1 Surface系统变化说明
时间真的是很巧,本来没打算写Surface系统的(相比AudioFlinger来说,Surface变化之后的难度真的是毛毛雨了),但为了庆祝泷泽萝拉发第二部大作,我决定还是要坚持一下。下面将延续Audio的分析风格,从几个层面来介绍Surface系统的变化(JB号称在Surface这块做过大量的优质的改进,无非就是引入在PC机上早都烂熟的VSYNC,Triple Buffering。但是JB,您能原创 2012-07-18 18:11:21 · 17000 阅读 · 10 评论 -
随笔之如何判断Android应用进程是否为单线程及闲扯多核并行编程
这篇文章来自公司的一封Q/A邮件。背景是想知道目前市面上的应用是否能在多核手机上性能有成倍增加。所以,自然而然就会问到一个基本问题,如何判断android中一个应用是否为多线程。这里简单扯一下多核的知识。我最早接触多核知识是2008年末到2009年初。背景很简单,我是做高性能网络数据传输服务器的,类似FTPServer一样。服务器的吞吐能力最好是随着CPU核数的增加成倍增长.。根据多核并行的知识,原创 2012-07-27 22:16:59 · 8111 阅读 · 4 评论 -
新增ICS代码和环境部署分享地址-迅雷快盘
http://kuai.xunlei.com/s/iAL2CLigNIt4ZmxzpdSjyw 但只支持7天。NND。兄弟们赶紧下载。原创 2012-08-23 21:07:42 · 4731 阅读 · 3 评论 -
Android BSP成长计划随笔之虚拟设备搭建和input系统
由于工作关系,对Android关注将从FWK(Framework)转向BSP,也就是Linux Kernel。在工作的5年中,曾经数次研究过kernel,但一直没有合适的机会或者说推动力去深入研究。这次有机会了,岂能放过呢?以前搞kernel,总是觉得没有合适的设备,都玩不转。最近琢磨了几天,打算从android虚拟设备goldfish开始吧。(惭愧啊,以前还买过一个板子,结果完了2天就腻味了)。原创 2012-09-08 21:56:37 · 10743 阅读 · 2 评论 -
深入理解Android写作背后的故事
本来是发表在《程序员》杂志的,结果编辑整理成一篇书评,内容和深度都大幅缩水,今天把原文post出来,希望能抛砖引玉。我正式接触Android的准确时间应该在2010年9月份。那段时间,老听到公司有人说Donut,CupCake、Eclair等非常奇怪的词(直到现在,我也不中意Android的版本命名),心中不禁很仰慕:竟然还有这么多我闻所未闻的东西。所以心里就特别好奇。不久,我就加入了Androi原创 2012-10-14 21:42:42 · 9082 阅读 · 7 评论 -
2012MDCC大会总结
今天参加了MDCC大会,很荣幸成为平台与技术分论坛的演讲嘉宾。都是牛人,干货也有不少。大家可关注csdn网站,应该每个论坛的presentation都有电子版下载。 http://vdisk.weibo.com/s/g8cmK 新浪微博 @阿拉神农 即可。下面是PPTX中重要部分的截图”原创 2012-10-20 20:35:38 · 6077 阅读 · 2 评论 -
随笔之GoldFish Kernel启动过程中arm汇编分析
随笔之GoldFish Kernel启动过程中arm汇编分析一 分析电子版下载地址:进入我的资源就能找到http://download.csdn.net/detail/innost/4834459本节介绍Kernel启动。此时Piggy已经将vimlinux解压,BL将执行权限传给了Kernel。代码在arch/arm/kernel/head.S中。相关代码如下://将采用C/C++注释语句 /原创 2012-12-01 16:59:30 · 13743 阅读 · 3 评论 -
Android Project Butter分析
Android Project Butter分析一背景知识介绍随着时间的推移,Android OS系统一直在不断进化、壮大,日趋完善。但直到Android 4.0问世,有关UI显示不流畅的问题也一直未得到根本解决。在整个进化过程中,Android在Display(显示)系统这块也下了不少功夫,例如,使用硬件加速等技术,但本质原因似乎和硬件关系并不大,因为iPhone的硬件配置并不比那些价格相近的A原创 2012-12-08 16:42:33 · 61931 阅读 · 33 评论 -
Android Wi-Fi Display(Miracast)介绍
Android Wi-Fi Display(Miracast)介绍2012年11月中旬,Google发布了Android 4.2。虽然它和Android 4.1同属Jelly Bean系列,但却添加了很多新的功能。其中,在显示部分,Android 4.2在Project Butter基础上再接再厉,新增了对Wi-Fi Display功能的支持。由此也导致整个显示架构发生了较大的变化。本文首先介绍W原创 2013-01-06 21:24:20 · 165988 阅读 · 54 评论 -
Android Says Bonjour
Android Says Bonjour很高兴能在农历蛇年刚开始的这期《程序员》杂志上继续为读者奉上Android的故事。初来咋到,首先要向大家说声”你好“。有意思的是,Android也很通人情,从4.1开始,它会说”Bonjour“了。不过它说得是不是原汁原味的法语腔呢?来看下文。一背景知识介绍Bonjour是法语中的Hello之意。它是Apple公司为基于组播域名服务(multicast DN原创 2013-03-02 16:25:44 · 25619 阅读 · 13 评论