Android开发环境搭建
Android编译系统参考手册
Android 源码下载
Android 编译环境
常用PPA源
[git] apt-add-repository ppa:git-core/ppa
ssh-keygen -t rsa -b 4096 -C "rinetd@163.com"
[java] add-apt-repository ppa:webupd8team/java
[vim7.3] add-apt-repository ppa:passy/vim
[python2.7] add-apt-repository ppa:fkrull/deadsnakes
[cmake 2.8.11] apt-add-repository ppa:roblib/ppa
################################################################################
Ubuntu 10.04 64位LTS英文版本
sudo apt-get install gnupg flex bison gperf build-essential
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown
libxml2-utils xsltproc
1. java-6u45
sudo add-apt-repository ppa:webupd8team/java
apt-get remove openjdk*可以卸载openJDK
安装sun java6-jdk
sudo apt-get update
sudo apt-get install oracle-java6-installer
这里安装的是 JDK6, JDK7, JDK8, JDK9 也可以安装,用apt-cache search 查询
sudo apt-get install oracle-java6-set-default
java -version
补充: 手工设置xxx 为默认的方法,以java 为例:
update-alternatives --config java
update-alternatives --display java
为系统安装新的JAVA
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u45-linux-x64.bin/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-6u45-linux-x64.bin/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk-6u45-linux-x64.bin/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk-6u45-linux-x64.bin/bin/javadoc 1
$ sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk-6u45-linux-x64.bin/bin/javah 1
$ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk-6u45-linux-x64.bin/bin/javap 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-6u45-linux-x64.bin/bin/jar 1
为系统选择新安装的JAVA版本
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config javah
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
6.检查JAVA版本
$ java -version
7.验证Javac, Java, Javaws, Javadoc, Javah, Javap, Jar是否都指向新的JAVA位置和版本
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
2. git 版本过低的错误
fatal:git 1.7.2 or later required
解决方法:增加ppa
sudo apt-add-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
如果本地已经安装过Git,可以使用升级命令:
sudo apt-get dist-upgrade
下载源码镜像
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/repo
$ chmod a+x ~/reporepo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
$?=1; while [ $? -ne 0 ] ; do repo sync ; done
repo 相关问题
1.repo sync中遇到error:......checkout ....接一串hashnumber
解决方法:进到它说提示的目录中,用git status显示文件,将修改过的文件删除掉,再重新repo sync
2.repo sync中遇到:contains uncommitted changes
解决方法:进到它说提示的目录中,使用git reset --hard命令
- 怎么对repo下的所有project执行git命令
解决方法:repo forall -c git checkout -b //该条命令会对repo下的project执行切换branch的命令 - 怎么切换到你想要的branch
解决方法:git checkout branchName,比如 git checkout testBranch
################################################################################
编译内核
单独编译kernel : ./buildM120DRETAIL kernel
单独编译bootloader : ./buildM120DRETAIL aboot
编译kernel和bootloader : ./buildM120DRETAIL bootimage >boot.img
单独编译system image: ./buildM120DRETAIL systemimage
单独编译userdata image: ./buildM120DRETAIL userdataimage
fastboot flash bootloader u-boot.bin
fastboot flash kernel uImage
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot flash ramdisk ramdisk-uboot.img
fastboot erase cache
fastboot flash boot boot.img烧录boot分区 //烧写kernel build\core\definitions.mk [define my-dir] build\core\config.mk[CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk] build\core\main.mk[TOPDIR := , BUILD_SYSTEM := $(TOPDIR)build/core ] AP是application processor
fastboot flash system system.img烧录system分区
fastboot flash userdata userdata.img烧录data分区
adb root
adb remount
adb pull
adb push
adb reboot recovery
adb reboot bootloader
fastboot flashall -w
./buildM120DRETAIL kernel
adb reboot bootloader
sudo fastboot flash boot boot.img
sudo fastboot rebootAndroid.mk 编译系统
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS) #清空除LOCAL_PATH外的所有环境变量
$(BUILD_SYSTEM)
CP是communication processor,modem那块。安装编译好的Android镜像到模拟器上。
1. 设置环境变量:
USER-NAME@MACHINE-NAME:~/Android$ export PATH=$PATH:~/Android/out/host/linux-x86/bin
USER-NAME@MACHINE-NAME:~/Android$ export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic
其中,~/Android/out/host/linux-x86/bin有我们要执行的emulator命令,而~/Android/out/target/product/generic是Android镜像存放目录,下面执行emulator命令时会用到。
2. 运行模拟器。
USER-NAME@MACHINE-NAME:~/Android$ emulator
模拟器运行需要四个文件,分别是
Linux Kernel镜像`zImage`
Android镜像文件`system.img`、`userdata.img`和`ramdisk.img`。
执行emulator命令时,如果不带任何参数,则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img,也就是我们刚刚编译出来的镜像问题。
当然,我们也可以以指定的镜像文件来运行模拟器,即运行emulator时,即:
emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
到这里,我们就可以在模拟器上运行我们自己编译的Android镜像文件了,是不是很酷呢?但是注意,这里说的Android镜像文件,只是包括system.img、userdata.img和ramdisk.img这三个文件,而Linux Kernel镜像用的是Android为我们预编译好的kernel-qemu镜像。那么,有没有办法使用我们自己编译的Linux Kernel镜像呢?答案上肯定的,这样我们就可以完全DIY自己的Android系统了!我将在下一篇文章描述如果编译自己的Linux Kernel镜像,敬请期待~
搭建easydrawin 视频服务
2.