Android系统架构是学习Android最基本的知识点,经常在技术面试过程中涉及到有关问题,接下来对Android系统架构进行总结。 Android官方文档提供资料显示:Android系统分为4个层次,从低到高依次为Linux kernel(Linux内核层),Libraries和And...
分类:
移动开发 时间:
2014-08-14 01:03:07
阅读次数:
238
一 sudo命令不能用
1 使用su切换到root用户,命令:
su
2 使用名:vim /etc/sudoers添加sudoer用户,命令:
vim /etc/sudoers
找到root=(ALL:ALL)ALL,在下面添加:
%你的用户名=(ALL)ALL
如果不想输入密码,可如下书写:
%你的用户名 ALL=(ALL) NOPASSWD: ALL
二 中文...
分类:
其他好文 时间:
2014-08-13 22:40:37
阅读次数:
297
memory子系统设定cgroup中任务使用的内存限制,并自动生成那些任务使用的内存资源报告。memory子系统是通过
linux的resource counter机制实现的,在进程进行内存分配、释放时对进程进行charge、uncharge操作。
charge操作进行点:
1.分配新页框时(请求调页、copy on write),在do_falut,do_anonymous_pag...
分类:
其他好文 时间:
2014-08-13 19:01:27
阅读次数:
199
cpuset子系统为cgroup中的任务分配独立CPU(在多核系统)和内存节点。cpuset_cgroup的cpus_allowed和mems_allowed定义
了该cpuset包含的cpu和内存节点,其中进程的task_struct->cpus_allowed与进程所属cpuset的cpus_allowed保持一致,在进程分配
物理页框时(alloc_pages系函数),通过cpuset_...
分类:
其他好文 时间:
2014-08-13 18:53:47
阅读次数:
152
理解Android软件栈: 库: C/C++库(libc,SSL) Android 运行时可以让Android手机从本质上与一个移动Linux实现区分开来。Dalvik并不是Java虚拟机,是一个基于寄存器的虚拟机,它依赖于Linux内核进行线程和底层内存管理。 Dalvik 虚拟机: 作用:Dal...
分类:
移动开发 时间:
2014-08-13 12:27:26
阅读次数:
230
MTD,Memory Technology Device即内存技术设备,在Linux内核中,引入MTD层为NOR FLASH和NAND FLASH设备提供统一接口。MTD将文件系统与底层FLASH存储器进行了隔离。如上图所示,MTD设备通常可分为四层,从上到下依次是:设备节点、MTD设备层、MTD原...
分类:
系统相关 时间:
2014-08-13 12:18:56
阅读次数:
310
Android是一个多用户,多任务的系统。
允许多个app在同一时刻执行,在多个程序之间切换并不会有明显的延迟。
多任务是由Linux内核负责处理的,而程序的运行基于Linux进程。
Linux进程
Linux为每一个用户分配一个唯一的用户ID(User ID),用于区分不同的User。
因为权限的原因,每一个用户只能访问私有资源,没有用户(除了Root用户,即超级管理员。我们这里不考虑这个用户。)可以访问其他用户的私有资源。因而,“沙盒”就用来独立这些用户。
在Android中,每一个应用都有一...
分类:
移动开发 时间:
2014-08-13 10:30:16
阅读次数:
260
Linux内核代码的调试非常麻烦,一般都是加printk, 或者用JTAG调试。
这里的方法是用QEMU来调试Linux内核。因为QEMU自己实现了一个gdb server, 所以可以非常方便的使用gdb来调内核。
这对内核的学习也非常有帮助。
为了尽量不多花时间在QEMU设置上,这里直接使用以下的内核image:
http://free-electrons.com/community/d...
分类:
系统相关 时间:
2014-08-13 01:11:14
阅读次数:
226
cpu子系统用于控制cgroup中所有进程可以使用的cpu时间片,通过组调度(将task_group作为调度实体)来实现。
参考博客:
1.cpu子系统
2.Linux内核之CFS调度和组调度...
分类:
其他好文 时间:
2014-08-12 22:16:54
阅读次数:
242
devices子系统用于控制cgroup中所有进程可以访问哪些设备,通过维护黑白名单,然后在inode_permission入口点,
通过devcgroup_inode_permission函数检查进程是否可以访问该设备。
参考博客:
1.devices子系统...
分类:
其他好文 时间:
2014-08-12 22:13:48
阅读次数:
289