Android 2.2|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性測试套件标准)|-- ...
分类:
移动开发 时间:
2015-06-01 11:27:20
阅读次数:
176
Android 用的是 Bionic C, 而不是通常的glibc,因此简单使用交叉工具链并不能够编译出适合运行在android 设备上的 C/C++ 程序。交叉工具链可以很轻松在 Android 源码 prebuilts 目录下找到,但是直接编译会提示找不到各种标准库的头文件,需要指定 Bioni...
分类:
移动开发 时间:
2015-04-13 16:32:59
阅读次数:
174
arm的编译器里已经有C标准库的lib包了,android为啥还要自己再实现呢google自己搞的bionic libc来替代glibc想来是有原因的,本来glibc也是lgpl,应该也没有版权问题,但是系统调用的接口有限,google应该是用自己的bionic libc来暴露出更多的系统调用接口,...
分类:
移动开发 时间:
2015-04-13 16:13:43
阅读次数:
144
1,android debuggerd学习android debuggerd进程位于bionic/linker/debugger.c文件,system/core/debugger/目录下。android user thread发生异常的过程,第一步,发生异常的thread被kernel扑捉到,ker...
分类:
其他好文 时间:
2015-01-18 21:00:45
阅读次数:
131
好记性不如烂笔头。今天要做的学习是关于bionic目录下的代码。
首先需要看的是_errno.c这份代码。
volatile int* __errno( void )
{
return &((volatile int*)__get_tls())[TLS_SLOT_ERRNO];
}从上面可以看出,返回的是一个指向int类型的指针。
volatile关键字是一种类型修饰符,用它声明...
分类:
移动开发 时间:
2015-01-11 12:25:42
阅读次数:
344
依旧是好记性不如烂笔头,今天需要学习的是arch-arm目录下的代码。
首先我们先看一下inclue目录下的endian这个头文件我们主要是需要知道下面的几点知识。
1、先看一下下面的代码的片段
#if !defined __ARM_ARCH_5__ && !defined __ARM_ARCH_5T__ && !defined __ARM_ARCH_5TE__ && !defi...
分类:
移动开发 时间:
2015-01-10 16:39:21
阅读次数:
202
1. 包含bionic库中"sys/system_properties.h"2. 使用接口a:获取接口 int _system_property_get(const char* key, char* buf),buf[PROP_NAME_MAX]参数1:获取的属性值,参数2:output:char*...
分类:
移动开发 时间:
2014-12-24 09:45:29
阅读次数:
1297
Android DNS 代码都在bionic/libc/netbsd中
(虽然netbsd 是个废弃的项目,但dns功能部分代码被 Android用上了)
netbsd 代码晦涩难懂,只有一边写程序,一边打log验证
照抄了一个简单程序, 在android 下面用 mmm 编译可以得到 py_getaddr 可能, 用adb 登陆到 devices 再到 system/bin 下去执...
分类:
移动开发 时间:
2014-11-25 12:49:09
阅读次数:
625
libhybris主要作用是为了解决libc库的兼容问题,目的是为了在基于GNU C library的系统运行那些用bionic编译的库(主要是Android下的闭源HAL库)。它在Ubuntu touch, WebOS, Jolla Sailfish OS等系统中都有使用。因为这些系统都是基于glibc生态的,然而现有的硬件厂商提供的driver多是为Android而写的,自然也是用bionic编译的。那么问题来了,说服厂商再写一套驱动不是那么容易的,就算写出来也需要经过一段时间才能变得成熟。那如何让基于...
分类:
其他好文 时间:
2014-11-24 17:16:31
阅读次数:
667
源码目录系统注解 +Kernel:Android Linux内核2.6 +bionic:Android标准C运行支持库 +bootloader:Android内核加载器参考 +build:Android的Build系统 +cts:Android兼容性测试源 +dalvik:Dalvik虚拟机 +ex...
分类:
移动开发 时间:
2014-10-28 09:19:04
阅读次数:
502