android基础
文章平均质量分 78
kevin_wz
莫愁前路无知己,天下谁人不识君!
展开
-
虚拟根文件系统与真实根文件系统
引言:根文件系统的noinitramfs已经分析,继续上文未完的initramfs和Android根文件系统分析,这两者有什么关系?1.initramfs对于initramfs,kernel 2.5开始引入,其实质是在内核镜像中附加一个cpio包(cpio一个用于备份、还原的工具,主要用于cpio和tar文件),在该cpio包中包含了一个小型的文件系统。当内核启动时,会尝试解开这人 cpio包,并且原创 2016-05-05 09:21:21 · 3653 阅读 · 0 评论 -
Android init进程一些容易忽视的技术细节
Android init进程作为用户空间第一个进程,做了很多系统初始化工作,其核心分为两块:一是属性,二是init.rc。此外,在具体的项目过程中,常和init进程打交道,里面有不少技术细节值得我们研究清楚。属性key-value大小限制bionic/libc/include/sys/System_properties.h#define PROP_NAME_MAX 32#原创 2016-07-08 23:18:44 · 1651 阅读 · 0 评论 -
内核态到用户态切换(二)
引言:(一)分析了0号进程(任务0)、内核线程、用户线程相关问题,有了这个铺垫,开始本文的分析。3)如何从内核空间切换到用户空间去的?假设1号进程(内核态)init中已ramdisk_execute_command已传入,毕竟是要分析android系统的。static int __init kernel_init(void * unused) { if (!ramdisk_execute_原创 2016-05-22 16:20:18 · 4031 阅读 · 1 评论 -
Android/Linux根目录下常见目录作用
当adb shell进入Android系统内部后,ls会看到根目录下出现不少目录,如dev、sys、mnt等目录,对于这些目录的作用常常让人模棱两可,有必要对其学习了解。首先要明白目录也是一种文件,根目录下的这些文件属于根文件系统的范畴,每个文件都要其重要的作用。/bin 包含基本的命令,通常该目录下的文件都是可执行的,也有可能是一个busyboxr的软链接。主要用于系统初始化,常见的有cp、m原创 2016-06-04 00:22:58 · 3112 阅读 · 0 评论 -
Android系统实际开发工作中的流程和必要技能
引言:做为一个Android开发工程师,结合实际项目(需要源码的系统开发)开发经验,谈谈整个流程和一些必要的技能。repo/git 项目开始,首先CI会将基线版本拉到CI服务上,同时配置好git仓、gerrit和分支,并开通相关开发人员的各种权限(代码下载、review、+2等),然后在通知开发,可以拉代码。开发人员在本地Linux服务器上,用repo下载代码:mkdir new_project_原创 2016-04-16 21:47:48 · 1856 阅读 · 0 评论 -
内核态到用户态切换分析(一)
引言:本文主要分析从内核态到用户态的切换,同时理清内核线程、用户空间进行之间的关系。内核进行一系统初始化后,会进入到rest_init,首先会产生一个kernel_init的内核线程,最终切换到用户空间的init进程,从而开始了用户空间初始化流程。先看下rest_init函数,static noinline void __init_refok rest_init(void) __releas原创 2016-05-15 23:56:41 · 5206 阅读 · 0 评论 -
x86 linux系统内核引导流程梳理
引言:在上节提到双系统关键技术之一关于系统启动问题,即在执行内核代码前做了些什么?是怎样从汇编代码过渡到c代码执行?arm芯片和x86芯片启动有什么不同?ram, sram, rom,prom, flash, nor flash, nand flash, fastboot,xloader, bootloader,uboot等有什么区别和联系?结合这些问题去研究,这里推荐赵炯的《Linux内核完全注原创 2016-04-24 16:18:36 · 2586 阅读 · 1 评论 -
Android系统内核引导流程梳理
引言:原创 2016-04-24 23:09:41 · 1055 阅读 · 0 评论 -
根文件系统(rootfs)梳理
引言:在linux系统中,一直对根文件系统理解得模棱两可,是时候彻底梳理一下了,包括根文件系统是什么 、如何初始化、如何应用及Android系统中的根文件系统等问题。首先要弄清楚根文件系统是什么?以下英文部分摘自 Kernel_2.3.6\Documentation\filesystemsramfs-rootfs-initramfs.txtWhat is rootfs? Rootfs is a原创 2016-05-04 14:23:44 · 10636 阅读 · 0 评论 -
Android 应用开发环境搭建
想起以前上学时候,MFC开发可谓红极一时。尤其是vc6.0这个工具,安装完毕之后,不但可以进行常用的console开发,也可以进行带界面的MFC开发,简单好用。 而今对于Android应用,开发环境需要小心配置,弄大半天可能连一个helloworld的界面程序的写不出来。今晚在ubuntu12上搭建了ADT和Android Studio,有些心得,分享一下。对于ADT和Android Studio原创 2016-07-20 23:26:15 · 597 阅读 · 0 评论