Skip to content

DylanZhao/aapt-build

Folders and files

NameName
Last commit message
Last commit date

Latest commit

70aa861 · Mar 8, 2016

History

5 Commits
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Mar 8, 2016
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014
Oct 27, 2014

Repository files navigation

aapt-build

this work is unfinished.

看到有fork,所以觉得应该把README写清楚,以下是当初在Window下的尝试过程:

一、准备 1、获取源码。android开放源码存放在git库中: https://android.googlesource.com/ 选择项目 platform/frameworks/base 选择 TAG android-4.4.4_r2.0.1(最新的tag) 寻找aapt tools/aapt/ 2、搭建编译环境 当前开发环境为 Windows + Eclipse(in ADT), 要支持C++编译,还需要安装插件和编译器。

在Eclipse中安装CDT(C/C++ Development Toolkit)插件; 安装MinGW.

二、解决依赖问题 在Eclipse中用向导新建C++工程,导入源码。在CDT语法分析之后,报告出一些错误。出现大批语法错误和多处引用头文件找不到:#include <utils/***.h> (其中***泛指头文件名)。可见aapt源码要依赖其他的工具或者库,不能独立编译。那么,去找这个utils吧。 还是去源码库,aapt/目录下没有,遍历父目录tools/,也没有。再上一层,到了根目录。这时有个子目录映入眼帘:include/ ,应该是它了,进去看看,没有!那么,搜索吧,搜索...结果还是没有,整个源码集中都找不到,那这个utils/是何方神圣?是个什么库吗?google之。 搜索发现,在早期版本的源码中是存在utils/这个目录的,是从哪个TAG开始丢掉了呢?从4.4.4往前一个个翻出来看吧。没有,没有,...,有了!版本: 4.0.1_r1 。选定这个TAG,获取到 tools/aapt/ 和 include/utils/ 。 工程清理,重新导入源码。嗯,现在utils又出现大批语法错误和多处引用头文件找不到。其中有#include <cutils/***.h> ,去找cutils/ 。在platform/frameworks/base中找了好久,最终发现是在另外一个项目中:platform/system/core/./include/cutils/ .嗯,好了,找到,添加进去,检查,坏了,cutils也要报错。针对报错的文件,进行以下处理:

没有被引用到的,删掉; 宏定义错误的,修改宏定义; 类型、常量、方法找不到的,注释掉; 解决一大堆编译红叉之后,变得稍微有些条理。 cutils(.h & .cpp)依赖的头文件缺少: sys/cdefs.h sys/socket.h sys/ioctl.h sys/mount.h sys/wait.h netinet/in.h machine/cpu-features.h

utils(.h & .cpp)依赖的头文件缺少: linux/ioctl.h linux/limits.h netinet/in.h android/looper.h android/configuration.h sys/epoll.h sys/poll.h sys/uio.h zlib.h system/graphics.h private/utils/Static.h

aapt源码依赖的头文件缺少: png.h zipfile/zipfile.h expat.h host/pseudolocalize.h zlib.h

接下来,就把这些头文件一个个找出来补充上。 先找 private/utils/Static.h,因为刚才在找别的文件时,好像见过它。果然,就在utils同级目录中发现private,把它添加到工程中,一个搞定。 然后 system/graphics.h,在system/core/./include/中。 然后 zipfile/zipfile.h,在system/core/./include/中。 然后 android/looper.h ,在frameworks/base/native/include/中。

还有linux/,netinet/等,这些是Linux平台的底层库,参考了 http://winuxxan.blog.51cto.com/2779763/502340 ,看来还是要在Linux平台来做交叉编译了,路还很长啊。

【To Be Continued】

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published