如果没有真正开发板,又想深入到android framework里,或kernel里的话,就只能用android的emulator了。 但是我们下载的androidSDK没有源代码,我们没办法跟踪修改framework和kernel里的东西。 所以有了想尝试自己从头生成SDK的想法。
1. 首先下载编译android所有source code. 具体步骤这里不再赘述,参考 http://source.android.com/download
cd mydroid repo init-ugit://android.git.kernel.org/platform/manifest.git reposync
一点小提示:有时候google的android服务器老是断,总不能让我们守在电脑旁边一直手工重新reposync吧,这可是需要N个小时才能下载完的啊。
我们就写个小脚本让电脑自动reposync,直到下载成功为止:
#!/bin/sh count=0 ret=1 while [ $ret -ne 0 ] do
repo sync ret=$? count=$(( $count + 1)) echo "try $count, ret:$ret"
done echo "try $count, ret:$ret"
把上面的内容复制到一个文件里tryrepo.sh 然后修改tryrepo.sh的属性,开始自动工作吧。第二点早上应该就大功告成了
chmod a+x tryrepo.sh ./tryrepo.sh

2. 编译android,生成SDK
makesdk

漫长的等待之后,SDK生成了,在目录:mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\ 在linux下面可以直接运行mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\tools\android就可以看到熟悉的android emulator启动界面。
如果想在windows XP下使用这个SDK和emulator, 最简单的方法是: (1)自己下载一个最新的windows版本的android 2.0 SDK。 (2)把mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\下的东西复制到windows版SDK的platforms下。 (3)然后把platforms下android-2.0下tools目录下的几个.exe文件复制到自己编译的SDK目录下的tools目录下。



编译命令:make update-api; make PRODUCT-sdk-sdk;

命令说明:

1、make update-api #如果你在Android源码中添加了自定义的包、类、方法或者你修改了Android源码中标识为@hide的方法、类,你需要这些内容对Application可见并且需要编译进SDK的Document中的话,这个命令是必须的(其实还有另外一种手工修改的方式替代这个命令的,呵呵);
2、make PRODUCT-sdk-sdk #编译源码并且声称SDK,这个方法解决了之前使用make sdk命令编译SDK的一个bug,就是R文件不能自动生成,需要手动更新一个jar文件才可以,这个文章本博客中也有涉及。

异常现象:如果在源码中添加了一些style、theme、drawable、package、class、method,编译时会出现有out/目录中的一些异常现象,一般不是特别严重的,主要是针对有些文件找不到,此时你可以在执行以下命令:

make clean

再执行:make update-api;make PRODUCT-sdk-sdk




更多相关文章

  1. android R.java资源文件不自动生成的原因
  2. Android 读取app内json配置文件
  3. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
  4. Android context 文件模式
  5. Android之网络请求4————OkHttp源码1:框架
  6. MacBook下配置android adb命令使用环境
  7. Android APK包文件解析
  8. Android Project from Existing Code 生成 R 文件错误、失败等问
  9. Android轻便易用的文件选择器ExFilePicker

随机推荐

  1. Android(安卓)Studio使用mysql-connector
  2. 宏定义简单实现jni函数命名
  3. Android(安卓)自定义ViewGroup
  4. Android(安卓)Fragment---与Activity生命
  5. Android中Spinner下拉列表(使用ArrayAdapt
  6. 2015最火十大Android开源项目,是个程序员
  7. Android(Java):在textview中显示富文本
  8. Android(安卓)编译时出现r cannot be res
  9. 使用drawable资源
  10. Android(安卓)dumpsys命令学习小记