- 浏览: 26400 次
- 性别:
- 来自: 北京
最新评论
大家好,上一讲我们介绍了以后的课程的大体安排,这一讲我们将进Android.Framework源码下载及编译
课程目标:
Android Framework 源码下载及编译
重点难点:
Android不同版本源代码环境配置的不同
考核目标:
下载Android Framework源码的过程
介绍Android源码版本控制用什么?
什么是Repo?
课后练习:
在UBUNTU下面下载和编译Android Framework Source Code
思考如何在Windows下下载 以及 编译 android源码
一、课程前说的话:
关于下载及使用源码的平台---Linux、Mac、Windows
如何选择UBUNTU,对版本的选择
2.6G的源码存储空间以及10G的下载空间
真的只能在Linux和MacOS上下载和Building吗?
二、准备Linux下的环境:
建议考虑Ubuntu 10.04 之后版本 ,建议用64bit系统 ,我采用的是11.04
Python 2.4 -- 2.7, 下载地址:python.org - 11.04自带的是2.7.1
JDK 6 Gingerbread及更新版本; JDK 5 Froyo及更早. 下载地址: java.sun.com
Git 1.5.4 之后版本. 下载地址: git-scm.com.- 通过apt-get 自动安装1.7.4.1 sudo apt-get install git
需要安装一些类库
(可选) Valgrind, 下载地址: valgrind.org.
1、检查并安装Python&Git
2、安装JDK
关于纠结的JDK,Froyo及以前版本请用JDKS,之后的用JDK6嫌时间长可以下载好共享到Ubuntu安装
如何在Ubuntu和Windows共享文件
3、安装需要的包
4、配置USB访问
三、下载源码
安装Repo
初始化Repo Client
开始同步文件
验证Git Tag
四、Building&Flash
1、初始化环境
2、选择一个Build Tag
Build Name
Build name Device Notes
generic emulator lowest-common denominator
full emulator fully configured with all languages, apps, input methods
full_crespo crespo full build running on Nexus S ("crespo")
Build Type
Build Type Use
user limited access; suited for production
userdebug like "user" but with root access and debuggability; preferred for debugging
eng development configuration with additional debugging tools
3、Make
1)、系统的应用程序在哪儿?
2)、Make编译的是所有内容么?是否包含内核的SDK
出现问题,Can not build System 32bit...
解决办法:
需要进行如下修改即可,
将
./external/clearsilver/cgi/Android.mk
./external/clearsilver/java-jni/Android.mk
./external/clearsilver/util/Android.mk
./external/clearsilver/cs/Android.mk
四个文件中的
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
注释掉,或者将“64”换成“32”
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
然后,将
./build/core/main.mk 中的
ifneq (64,$(findstring 64,$(build_arch)))
改为:
ifneq (i686,$(findstring i686,$(build_arch)))
又出现问题了,Make不成功
In file included from external/qemu/target-i386/kvm.c:19:
/usr/include/linux/kvm.h:215: error: field 'arch' has incomplete type
/usr/include/linux/kvm.h:383: error: field 'arch' has incomplete type
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/emulator-target-i386_intermediates/target- i386/kvm.o] 错误 1
解决办法
只要在下载源码的目录下执行下面这句,然后再make就不会再出现这个错误了
repo download platform/external/qemu 22776/1
4、编译内核
5、编译SDK
6、调用Emulator启动编译好的ROM
export ANDROID_PRODUCT_OUT=~/[SourceCodeFolder]/out/target/product/generic/
cd ~/[SourceCodeFolder]/out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates./emulator
五、源码下载编译过程常见问题
Python版本过低
JDK不匹配
安装了Java之后Java环境不生效
操作系统位数不匹配
无USB访问权限
缺少类库错误
Ubuntu11.04编译失败错误
特别推荐新课程:Android开发高端课程
http://www.mobidever.com/forum.php?mod=viewthread&tid=2098
本课视频地址:http://www.tudou.com/programs/view/ul8Yridzt0U/
http://www.tudou.com/programs/view/-ofVwQT57ng(土豆网)
课程下载地址:http://www.verycd.com/topics/2900036/ (VeryCD电驴)
作者博客:http://www.mobidever.com/forum.php (Sundy-Android开发联盟)
课程目标:
Android Framework 源码下载及编译
重点难点:
Android不同版本源代码环境配置的不同
考核目标:
下载Android Framework源码的过程
介绍Android源码版本控制用什么?
什么是Repo?
课后练习:
在UBUNTU下面下载和编译Android Framework Source Code
思考如何在Windows下下载 以及 编译 android源码
一、课程前说的话:
关于下载及使用源码的平台---Linux、Mac、Windows
如何选择UBUNTU,对版本的选择
2.6G的源码存储空间以及10G的下载空间
真的只能在Linux和MacOS上下载和Building吗?
二、准备Linux下的环境:
建议考虑Ubuntu 10.04 之后版本 ,建议用64bit系统 ,我采用的是11.04
Python 2.4 -- 2.7, 下载地址:python.org - 11.04自带的是2.7.1
JDK 6 Gingerbread及更新版本; JDK 5 Froyo及更早. 下载地址: java.sun.com
Git 1.5.4 之后版本. 下载地址: git-scm.com.- 通过apt-get 自动安装1.7.4.1 sudo apt-get install git
需要安装一些类库
(可选) Valgrind, 下载地址: valgrind.org.
1、检查并安装Python&Git
2、安装JDK
关于纠结的JDK,Froyo及以前版本请用JDKS,之后的用JDK6嫌时间长可以下载好共享到Ubuntu安装
如何在Ubuntu和Windows共享文件
3、安装需要的包
4、配置USB访问
三、下载源码
安装Repo
初始化Repo Client
开始同步文件
验证Git Tag
四、Building&Flash
1、初始化环境
2、选择一个Build Tag
Build Name
Build name Device Notes
generic emulator lowest-common denominator
full emulator fully configured with all languages, apps, input methods
full_crespo crespo full build running on Nexus S ("crespo")
Build Type
Build Type Use
user limited access; suited for production
userdebug like "user" but with root access and debuggability; preferred for debugging
eng development configuration with additional debugging tools
3、Make
1)、系统的应用程序在哪儿?
2)、Make编译的是所有内容么?是否包含内核的SDK
出现问题,Can not build System 32bit...
解决办法:
需要进行如下修改即可,
将
./external/clearsilver/cgi/Android.mk
./external/clearsilver/java-jni/Android.mk
./external/clearsilver/util/Android.mk
./external/clearsilver/cs/Android.mk
四个文件中的
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
注释掉,或者将“64”换成“32”
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
然后,将
./build/core/main.mk 中的
ifneq (64,$(findstring 64,$(build_arch)))
改为:
ifneq (i686,$(findstring i686,$(build_arch)))
又出现问题了,Make不成功
In file included from external/qemu/target-i386/kvm.c:19:
/usr/include/linux/kvm.h:215: error: field 'arch' has incomplete type
/usr/include/linux/kvm.h:383: error: field 'arch' has incomplete type
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/emulator-target-i386_intermediates/target- i386/kvm.o] 错误 1
解决办法
只要在下载源码的目录下执行下面这句,然后再make就不会再出现这个错误了
repo download platform/external/qemu 22776/1
4、编译内核
5、编译SDK
6、调用Emulator启动编译好的ROM
export ANDROID_PRODUCT_OUT=~/[SourceCodeFolder]/out/target/product/generic/
cd ~/[SourceCodeFolder]/out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates./emulator
五、源码下载编译过程常见问题
Python版本过低
JDK不匹配
安装了Java之后Java环境不生效
操作系统位数不匹配
无USB访问权限
缺少类库错误
Ubuntu11.04编译失败错误
特别推荐新课程:Android开发高端课程
http://www.mobidever.com/forum.php?mod=viewthread&tid=2098
本课视频地址:http://www.tudou.com/programs/view/ul8Yridzt0U/
http://www.tudou.com/programs/view/-ofVwQT57ng(土豆网)
课程下载地址:http://www.verycd.com/topics/2900036/ (VeryCD电驴)
作者博客:http://www.mobidever.com/forum.php (Sundy-Android开发联盟)
发表评论
-
《2012Sundy高级课程更新》Android深入浅出系列课程文章列表
2012-03-15 10:25 1754既然是一个系列的教程 ... -
Android开发视频教程-深入浅出系列Lesson20-AFF111029学习Android界面开发的基础
2012-03-19 09:37 1654课程目标: 学习和掌握Android界面开发学习方法 了解An ... -
Android开发视频教程-深入浅出系列Lesson19-AFF110727_蓝牙编程入门
2012-03-19 09:38 1847课程目标 知道蓝牙是什么,能够做什么,知道常用蓝牙的API ... -
Android开发视频教程-深入浅出系列Lesson18-SPI110723_Mobile.Widget概述
2012-03-16 09:39 920· 课程目标: 知道Mobile Widget概念 , 知道其 ... -
Android深入浅出系列课程---Lesson17-在Android2.2以上实现MobileWidget
2012-03-16 09:36 1087大家好,上一讲我们介绍了虚拟机概述,JIT概述,这一讲我们将进 ... -
Android深入浅出系列课程---Lesson16-AFF110606_AsyncTask异步任务
2012-03-16 09:35 991大家好,上一讲我们介绍了Handler-不可缺少的异步,这一讲 ... -
Android深入浅出系列课程---Lesson15LLY110602_Dalvik虚拟机概述
2012-03-16 09:35 1163更多Android深入浅出课程列表:http://www.eo ... -
Android深入浅出系列课程---Lesson14Handler-不可缺少的异步
2012-03-16 09:33 953大家好,上一讲我们介 ... -
Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述
2012-03-15 10:43 945大家好,上一讲我们介绍了Android.Framework源码 ... -
Android深入浅出系列课程---Lesson12 AFF110525_Android多线程系统概要
2012-03-15 10:42 1060大家好,上一讲我们介绍了Android.Framework源码 ... -
Android深入浅出系列课程---Lesson10 SHW110518_关于课程顺序的说明
2012-03-15 10:28 881大家好,上一讲我们介绍了ActivityWindowView的 ... -
Android深入浅出系列课程---Lesson9 AAF110430_ActivityWindowView的关系
2012-03-14 10:39 1071更多Android深入浅出课程列表:http://www.eo ... -
Android深入浅出系列课程---Lesson8 Android应用程序启动
2012-03-14 10:37 1163特别推荐新课程:Android ... -
Android深入浅出系列课程---Lesson7 LLY110426_Android系统启动
2012-03-14 10:35 762大家好,上一讲我们介绍了Activity状态保存,这一讲我们将 ... -
Android深入浅出系列课程---Lesson6 AAF110503_Activity状态保存
2012-03-14 10:32 897大家好,上一讲我们介绍了Android中Activity是什么 ... -
Android深入浅出系列课程---Lesson5 AAF110502_Activity是什么
2012-03-14 10:28 871大家好,上一讲我们介绍了Manifest文件的使用,这一讲我们 ... -
Android深入浅出系列课程---Lesson4-AAF110429_介绍Manifest文件的使用
2012-03-13 13:33 1004大家好,上一讲我们介绍了进程生命周期(Process Life ... -
Android深入浅出系列课程---Lesson3 AAF110427_进程生命周期Process Lifecycle
2012-03-13 13:15 983大家好,上一讲我们介 ... -
Android深入浅出系列课程---Lesson2 AAF110426_Log打开android大门
2012-03-13 13:12 932大家好,上一讲对Android中Context的介绍,这一讲将 ... -
Android深入浅出系列课程---Lesson1 AAF110430_android中context介绍
2012-03-13 13:06 848大家好,这一讲我们来介绍下Android中Context 一、 ...
相关推荐
【深入浅出玩转FPGA】系列教程是特权同学精心制作的一套面向初学者和进阶者的FPGA学习资料,涵盖了从基础知识到实践应用的多个方面。通过这十课的PPT汇总,我们可以系统地了解到FPGA的核心概念、设计流程以及实际...
ct-算法重建-马建-lesson01-ct-recon.ppt
[2.1.1]--Lesson1Four-StepTranslationProce.srt
标题中的"lesson-10-comp1073-源码.rar"表明这是一份与计算机编程相关的学习资源,可能是某个在线课程的第十课时的源代码。"comp1073"可能代表课程编号或者某种特定主题,比如计算机科学的一个特定课程或项目。"源码...
新概念英语青少版1A-Unit13--Lesson25.ppt
ML-lesson3-Scikit-learn.mhtml
W2021-Lesson2a-main-main.rar"很可能是一个大学课程的编程作业或教学资源的压缩文件,其中"COMP397"可能代表计算机科学的某一门课程编号,"W2021"可能是冬季学期的2021年份,而"Lesson2a"则暗示这是课程的第二个...
人教版新起点三年级上册英语教案Unit-1-Myself-lesson-1.doc
Lesson4---串口通信与SerialForwarder.ppt
英语教案-Unit30Mainlyrevision-Lesson118.doc
- lesson (名词) -> class (名词):同义词,均指课堂或课程。 - good (形容词) -> bad (形容词):反义词,分别表示好的和坏的。 - interest (名词) -> interesting (形容词):形容词形式,表示有趣的。 - buy ...
ML-lesson4-regressio 注释版.ipynb
COMP397-W2021-Lesson4-Build-main-源码.rar
分类专栏:https://blog.csdn.net/weixin_36572983/category_9743676.html 四篇博文: https://blog.csdn.net/weixin_36572983/article/details/104468837 ...
unit5-lesson1Is-this-your-classroomPPT教案.pptx
Lesson14-The-Air-Conditioningppt课件.pptx
Lesson16-New-Types-of-Vehiclesppt课件.pptx
"objective-c-II-br_lesson_1-源码.rar" 提供的是一系列Objective-C编程的基础教程源代码,适合初学者或者需要深入理解Objective-C概念的开发者。在这一课中,我们将探讨以下几个关键知识点: 1. **Objective-C的...
新概念英语第一册-Lesson77-78PPT课件.pptx
Lesson2---模块和tinyos执行模型.ppt