android系统级深入开发
jindegegesun
这个作者很懒,什么都没留下…
展开
-
全面认识Android手机(MIUI ROM适配之旅第三天——反编译)
首先说句抱歉,今天事情比较多,教程出来的比较晚,请包含。今后几天也会稍晚一点,但是我会每天更新的。 今天我们来详细的看看反编译,想要修改一个系统自带的应用程序和它的代码,在没有源码的情况下,我们就不得不用反编译来修改。 和很多书籍一样,为了向经典的"Hello, World"致敬,我们也从一个简单的程序开始HelloActivity.apk。当你把这个APK安装到手机上转载 2012-02-03 11:33:10 · 953 阅读 · 0 评论 -
全面认识Android手机(MIUI ROM适配之旅第四天——移植MIUI Framework)
1. 为什么使用代码插桩 首先我们来回顾第一章中的Android软件架构图,这个图中框架层的代码完全是由Java语言编写的,对于这两层的代码,在没有源代码的情况下我们可以采取代码插桩的方式来注入我们的代码。但是对于下面几层的代码几乎都是以机器码的形式存在,机器码也是可以修改的,但是修改难度和修改smali代码的难度不可同日而语。我们这个系列的文章不介绍如何修改这些机器码,大家有兴趣的转载 2012-02-03 11:33:55 · 1520 阅读 · 0 评论 -
Android IPC 通讯机制源码分析【上】
Linux系统中进程间通信的方式有:socket, named pipe,message queque, signal,share memory。Java系统中的进程间通信方式有socket, named pipe等,android应用程序理所当然可以应用JAVA的IPC机制实现进程间的通信,但我查看android的源码,在同一终端上的应用软件的通 信几乎看不到这些IPC通信方式,取而代之转载 2012-02-02 16:05:18 · 465 阅读 · 0 评论 -
Android中对Log日志文件的分析
一,Bug出现了, 需要“干掉”它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只要你会看bug,android里应用开发也就很简单了。那我们先来看看android里的ANR,怎么出现ANR呢,很简单。 # adb shell转载 2012-02-02 16:03:23 · 956 阅读 · 0 评论 -
Git详解之七 自定义Git
自定义 Git到目前为止,我阐述了 Git 基本的运作机制和使用方式,介绍了 Git 提供的许多工具来帮助你简单且有效地使用它。 在本章,我将会介绍 Git 的一些重要的配置方法和钩子机制以满足自定义的要求。通过这些工具,它会和你和公司或团队配合得天衣无缝。7.1 配置 Git如第一章所言,用git config配置 Git,要做的第一件事就是设置名字和邮箱地转载 2012-02-02 15:36:34 · 714 阅读 · 0 评论 -
Android启动过程的深入研究
对于关注Android底层的朋友来说,其具体的启动过程应该是比较吸引我们的。但是很多启动文件什么的,都得adb push到host上来看,挺不方便的,都怪Android自带的Toolbox太简略了。所以在深入了解Android的启动流程之前,我们来把Busybox安装到Android上去,这样,就有很多工具供我们使用了。 首先去busybox主页 下载最新版本的源代码,然后用arm的交叉转载 2012-02-03 11:43:46 · 529 阅读 · 0 评论 -
Android系统移植全过程
Android开发环境篇一. 安装:Required PackagesAndroid requires the following system packages:flex: This lexical analyzer generator is used to read a given input file for a description of a scann转载 2012-02-03 11:20:32 · 687 阅读 · 0 评论 -
Git详解
1. 起步1.1 - 关于版本控制1.2 - Git 简史1.3 - Git 基础1.4 - 安装 Git1.5 - 初次运行 Git 前的配置1.6 - 获取帮助1.7 - 小结2. Git 基础2.1 - 取得项目的 Git 仓库2.2 - 记录每次更新到仓库2.3 - 查看提交历史2.4 - 撤消操作2.5 - 远程仓库的使用2.6 - 打标签2.7 - 技巧和窍转载 2012-02-02 15:39:37 · 503 阅读 · 0 评论 -
Git详解之六 Git工具
Git 工具现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程。你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力。接下来你将领略到一些 Git 可以实现的非常强大的功能,这些功能你可能并不会在日常操作中使用,但在某些时候你也许会需要。6.1 修订版本(Revision)选择Git转载 2012-02-02 15:35:33 · 548 阅读 · 0 评论 -
Git详解之一 Git起步
起步本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。1.1 关于版本控制什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本转载 2012-02-02 15:30:19 · 443 阅读 · 0 评论 -
使用NDK移植开源项目,JNI的使用技巧
jni 的介绍 JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。以下介绍Android 中转载 2012-02-08 10:47:08 · 563 阅读 · 0 评论 -
Android 开发中Parcel存储类型和数据容器
在android中使用Parcel(存储基本数据类型和引用数据类型的容器)通过IBinder来绑定,这种方法的作用是让数据在进程间传递数据,Parcel定位就是轻量级的高效的对象序列化和反序列化机制。在Framework中有parcel类,源码路径是:Frameworks/base/core/java/android/os/Parcel.java典型的源码片断如下:原创 2012-02-03 11:41:55 · 544 阅读 · 0 评论 -
git 常用命令备份
Git配置git config --global user.name "cnhans" git config --global user.email "cnhaixiang@gmail.com"git config --global color.ui truegit config --global alias.co checkoutgit config --global alias原创 2013-06-17 17:56:28 · 919 阅读 · 0 评论 -
全面认识Android手机 (MIUI ROM适配之旅第一天——认识Android手机 )
在MIUI论坛里读了读“MIUI ROM的适配教程",觉得很不错,我觉得对大家很有帮助,我就转载了原文章论坛地址 :http://www.miui.com/forum-forumdisplay-fid-38-page-1.html总共六部分:第一部分:先认识一下Android手机的软件结构,介绍一些基本概念。第二部分:准备工作,包括一些工具和环境的搭建。第三部分:反转载 2012-02-03 11:30:08 · 774 阅读 · 0 评论 -
android的makefile分析
随着移动互联网的发展,移动开发也越来越吃香了,目前最火的莫过于android,android是什么就不用说了,android自从开源以来,就受到很多人的追捧。当然,一部人追捧它是因为它是Google开发的。对一个程序员来说,一个系统值不值得追捧得要拿代码来说话。我这里并不打算分析android的代码,而是android的makefile,也许大家已经知道了在android源码里,我们可以看见很转载 2012-02-02 15:21:08 · 460 阅读 · 0 评论 -
全面认识Android手机(MIUI ROM适配之旅第二天——准备工作)
1. 搭建移植环境 “工欲善其事,必先利其器”。在制作自己的ROM之前我们必须做好准备工作,搭建好移植环境。 我们这个系列的主旨是如何基于原厂ROM修改。我们所涉及的修改理论上说是不需要源码的,对源码开发感兴趣的可以参照http://source.android.com。对于ROM制作者来说,我们建议你下载一份google发布的android源代码,这不是必需的,但是对转载 2012-02-03 11:31:08 · 1221 阅读 · 0 评论 -
Android IPC 通讯机制源码分析【下】
client获取Service的远程IBinder接口以CameraService为例(camera.cpp):const sp& Camera::getCameraService(){ Mutex::Autolock _l(mLock); if (mCameraService.get() == 0) { sp sm = d转载 2012-02-03 11:18:29 · 426 阅读 · 0 评论 -
Git详解之九 Git内部原理
Git 内部原理不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式。我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的,不过也有人认为这些内容对于初学者来说可能难以理解且过于复杂。正因如此我把这部分内容放在最后一章,你在学习过程中可以先阅读这部分,也可以晚点阅读这部分,这完全取决于你自己。既然已经读到这了转载 2012-02-02 15:38:38 · 534 阅读 · 0 评论 -
Git详解之八 Git与其他系统
Git 与其他系统世界不是完美的。大多数时候,将所有接触到的项目全部转向 Git 是不可能的。有时我们不得不为某个项目使用其他的版本控制系统(VCS, Version Control System ),其中比较常见的是 Subversion 。你将在本章的第一部分学习使用 git svn ,Git 为 Subversion 附带的双向桥接工具。或许现在你已经在考虑将先前的项目转向转载 2012-02-02 15:37:29 · 457 阅读 · 0 评论 -
Git详解之四 服务器上的Git
服务器上的 Git到目前为止,你应该已经学会了使用 Git 来完成日常工作。然而,如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度。另外,你也一定希望合作者们即使在自己不开机的时候也能从仓库获取数据 — 拥有一个更稳定的公共仓库十分有用。因此,更好的合作方式是建立一个大家都可以访问的共转载 2012-02-02 15:33:38 · 907 阅读 · 0 评论 -
Ubuntu环境下 Android平台源码的下载及编译
本文介绍Ubuntu环境下Android源码下载及编译方法,Android源码是什么?Android源码就是指Android平台和软件源码,不单指Linux内核Kernel,我们常说的Linux Kernel在这个Open source project里,只是其中的一个组成部分。那么我们什么时候需用到Andriod源码呢?添加修改驱动、固化APK应用、定制OS、权限及服务修改或固化等等,大都需要修转载 2012-02-03 11:21:16 · 466 阅读 · 0 评论 -
Android内核和驱动篇-Android内核介绍
已经有一些的文章介绍Android内核了,本系列篇将从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍Android内核的全貌,起到一个抛砖引玉的作用。从下一篇开始将详细介绍每一个Android内核驱动程序及其作用。 Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提转载 2012-02-03 11:19:33 · 545 阅读 · 0 评论 -
Android IPC 通讯机制源码分析【中】
客户端如何设置这个句柄在下面会介绍。CameraSerivce服务的注册(Main_mediaservice.c)int main(int argc, char** argv){sp proc(ProcessState::self());sp sm = defaultServiceManager();LOGI("ServiceManager: %p"转载 2012-02-03 11:17:34 · 614 阅读 · 0 评论 -
Android核心分析
文章皆来自CSDN网友maxleng的专栏,maxleng是名Android爱好者,长期从事嵌入式系统及手机软件系统研究,自2010年4月起,在CSDN上先后发表28篇《Android核心分析》系列博文,收到网友们的极高评价。《Android核心分析》整理如下:1. 方法论探讨之设计意图2. 方法论探讨之概念空间篇3. 手机之硬件形态4. 手机的软件形态5.转载 2012-02-02 16:04:32 · 449 阅读 · 0 评论 -
Git详解之五 分布式Git
分布式 Git为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库。经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令。接下来,我们要学习下如何利用 Git 来组织和完成分布式工作流程。特别是,当作为项目贡献者时,我们该怎么做才能方便维护者采纳更新;或者作为项目维护者时,又该怎样有效管理大量贡献者的提交。转载 2012-02-02 15:34:38 · 1084 阅读 · 1 评论 -
Git详解之三 Git分支
Git 分支几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是转载 2012-02-02 15:32:36 · 449 阅读 · 0 评论 -
Git详解之二 Git基础
Git 基础读完本章你就能上手使用 Git 了。本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令。读完本章,你就能初始化一个新的代码仓库,做一些适当配置;开始或停止跟踪某些文件;暂存或提交某些更新。我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件;如何既快且容易地撤消犯下的小错误;如何浏览项目的更新历史,查看某两次更新之间的差转载 2012-02-02 15:31:32 · 416 阅读 · 0 评论 -
搭建Android源码编译环境及编译常见错误
1.安装Ubuntu 10.10 可选择使用Wubi安装。2.安装Python Ubuntu 10.10 已经安装了2.6版。3.安装JDK 更新软件库: sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" sudo原创 2013-07-04 14:30:38 · 3693 阅读 · 0 评论