cyanogenmodinstaller的简单介绍
因为工做需要大量修改framework代码, 在AOSP(Android Open Source Project)源码上破费了很多功夫, Application端和Services端都看和改了很多.
假设 只是想看看一些常用类的实现, 在Android包治理 器里把源码下载下来, 随意一个IDE配好Source Code的path看就行.
但假设 想深进 的领会Android系统, 那么能够看下我的一些简单的总结.
常识
Java
Java是AOSP的次要语言之一. 没得说, 必须娴熟 掌握 .
娴熟 的Android App开发
Linux
Android基于Linux的, 而且AOSP的选举 编译情况是Ubuntu 12.04. 所以娴熟 的利用并领会Linux那个系统是必不成少的. 假设 你想领会偏底层的代码, 那么必须领会根本的Linux情况下的法式开发. 假设 再深进 到驱动层, 那么Kernel相关的常识也要具备.
Make
AOSP利用Make系统停止编译. 领会根本的Makefile编写会让你更清晰 领会AOSP那个浩荡 的项目是若何构建起来的.
Git
AOSP利用git+repo停止源码治理 . 那应该是法式员必备技能吧.
C++
Android系统的一些性能灵敏 模块及第三方库是用C++实现的, 好比: Input系统, Chromium项目(WebView的底层实现).
硬件
顺畅 的国际收集
AOSP代码下载需要你拥有一个顺畅 的国际收集. 假设 鄙人载代码那一步就失往 耐烦 的话, 那你必定没有耐烦 往 看那乱糟糟的AOSP代码. 别的, 好法式员应该城市需要一个顺畅 的Google.
一台运行Ubuntu 12.04的PC.
假设 只是阅读源码而不做太多修改的话, 其实不需要太高的设置装备摆设.
一台Nexus设备
AOSP项目默认只撑持Nexus系列设备. 没有也不妨, 你仍然能够读代码. 但假设 你想在大牛之路走的更远, 仍是改改代码, 然后刷机调试看看吧.
高操行 USB线
要刷机时线坏了, 没有更窝心的事儿了.
软件
Ubuntu 12.04
官方选举 , 没得选.
Oracle Java 1.6
重视 不要用OpenJDK. 那是个坑, 官方文档固然有写, 但仍是零丁提一下.
安拆:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer
sudo apt-get install oracle-java6-set-default
Eclipse
估量 会有很多人吐槽, 为什么要用那个老古董. 其实原因很简单, 适宜 . 刚起头搞AOSP时, 为了找到效率更优的东西, 我测验考试过Eclipse, IntelliJ IDEA, Vim+Ctags, Sublime Text+Ctags. 最末成果仍是Eclipse. 次要长处有:
有语法阐发 (快速准确 的类, 办法跳转).
撑持C++ (IntelliJ的C++撑持做的太慢了).
嵌进 了DDMS, View Hierarchy等调试东西.
为了进步效率, 花5分钟背下常用灵敏 键十分十分值得.
调整好你的classpath, 不要导进 无用的代码. 因为AOSP项目代码其实是太多了. 当你还不需要看C++代码时, 不要为项目添加C++撑持, 建索引过程会让你瓦解.
Intellij IDEA
开发App必备. 当你要调试系统的某个功用是, 经常 需要敏捷写出一个调试用App, 那个时候老旧的Eclipse就欠好用了. Itellij IDEA的xml主动补全十分给力.
巨人的肩膀
那个必然要先读. 项目介绍, 代码下载, 情况搭建, 刷机办法, Eclipse设置装备摆设都在那里. 那是一切的根底.
那个其实是给App开发者看的. 但是里面也有很多关于系统机造的介绍, 值得细读.
此老罗非彼老罗. 罗升阳教师的博客十分有营养, 根本能够做为指引你起头阅读AOSP源码的教程. 你能够根据博客的时间挨次一篇篇挑需要的看.但那个系列的博客有些问题:
早期的博客是基于旧版本的Android;
大量的代码流程逃踪. 读文章时你必然要清晰 你在看的工具在整个系统处于什么样的位置.
邓凡平教师也是为Android大牛, 博客同样很有营养. 但是不像罗升阳教师的那么系统. 更多的是一些手艺点的深进 切磋.
Android官方Issue列表. 我在开发过程中发现过一些希罕 的bug, 最初发现那里根本都有笔录 . 当然你能够提一些新的, 有没有人改就是别的一回事了.
必然要能顺畅 的利用那个东西. 大量的相关常识是没有人系统的总结的, 你需要本身搞定.
其它
代码组织
AOSP的编译单位不是和git项目逐个对应的, 而是和Android.mk文件逐个对应的. 善用mmm号令停止模块编译将节约 你大量的时间.
Binder
那是Android最根底的历程间通信. 在Application和System services之间大量利用. 你不只要晓得AIDL若何利用, 也要晓得若何手写Binder接口. 那对你理解Android的Application和System services若何交互有十分重要的感化. Binder若何实现的倒没必要焦急看.
HAL
除非你对硬件特殊 感兴致 或者想往 计划公司上班, 不然别花太多时间在那一层.
CyanogenMod
那是一个基于AOSP的第三方Rom. 从那个项目标wiki里你能学到良多AOSP官方没有告诉你的工具. 好比若何撑持Nexus以外的设备.
DIA
那是一个Linux下画UML的东西, 可以帮你梳理看过的代码.
XDA
那里有最新资讯和最有趣的论坛.
想到了再填补 .
如何从源码编译rom本帖最初由 pigjohn 于 2014-2-10 20:24 编纂
一、你需要:
1.linux系统情况
教程利用ubuntu 12.04(LTS)
硬盘安拆或虚拟机安拆应该都ok。
2.电脑设置装备摆设不要太差
二、搭建编译情况:
1.java安拆设置装备摆设
1) 删除旧版本java
ctrl+alt+t 翻开末端。
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
sudo apt-get purge sun-java
复造代码
2) 安拆java 1.6
添加软件源,翻开末端输进
sudo add-apt-repository ppa:webupd8team/java
复造代码
下载安拆,翻开末端输进
sudo apt-get update sudo apt-get install oracle-java6-installer
复造代码
跟从屏幕提醒,你需要承受利用条目。
安拆完成后,末端输进 java -version,你会看到java版本信息。类似
java version “1.6.0_37″
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
复造代码
2.安拆依靠 软件
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev \
ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \
lib32z-dev libgl1-mesa-dev g++-multilib mingw32 \
tofrodos python-markdown libxml2-utils xsltproc readline-common \
libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev \
lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 \
libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev \
libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.6-dev
复造代码
期待安拆设置装备摆设完成
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
复造代码
三、源码下载
1.repo脚本下载
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl [url][/url] ~/bin/repo
$ chmod a+x ~/bin/repo
复造代码
2.初始化repo同步
mkdir ~/cm11
cd ~/cm11
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
复造代码
你需要按提醒输进 用户名和邮箱。
3.9003device源码
cd ~/cm11/.repo
mkdir local_manifests cd local_manifests
gedit roomservice.xml
复造代码
粘贴以下内容
?xml version="1.0" encoding="UTF-8"?
manifest
project name="dhiru1602/android_device_samsung_galaxysl" path="device/samsung/galaxysl" remote="github" revision="cm-11.0" /
project name="dhiru1602/android_vendor_samsung_galaxysl" path="vendor/samsung/galaxysl" remote="github" revision="cm-11.0" /
project name="dhiru1602/android_kernel_samsung_latona" path="kernel/samsung/latona" remote="github" revision="cm-11.0" /
project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-11.0"/
/manifest
复造代码
保留。
4.同步源码
cd ~/cm11
repo sync -j8
复造代码
源码有好几个G,同步时间长短取决于你的收集速度。
四、编译
1.编译之前同步最新源码
repo sync
复造代码
2.初始化情况
. build/envsetup.sh
复造代码
3.编译
brunch galaxysl
复造代码
接着饮 杯茶,编译时间长短取决于你的电脑设置装备摆设。
不出不测,你会最末得到~/cm11/out/target/product/galaxysl/cm-11-XXXXX-UNOFFICIAL-galaxysl.zip
五、刷机测试
以上就是编译cm11的过程。
关于其他rom,类似。
mokee:
mkdir ~/mokee cd ~/mokee
repo init -u -b kk_mkt
cyanogenmod installer手机端怎么安拆办法/步调:
起首我们在百度间接搜刮CM。点击第一个,也就是他的官方点击进往 。
然后我们能够看到他的主页上有一个按钮,那就是提醒你怎么下载他们产物的按钮,绿色的。我们点击一下。
起首我们讲一下一键安拆,如今手机上安拆一个他们的软件。扫描第二步的二维码下载。安拆完成后翻开根据 提醒抉择 数据线毗连电脑形式。
在看第四部,到电脑上下载一个他们的客户端,安拆完成后翻开,用数据线把手机毗连到电脑,手机上也要翻开他们的软件。然后我们就能够享受一键刷机了。十分便利
那是电脑上客户端的画面,十分简洁,我们翻开它。再把手机上的客户端翻开,抉择 起头刷机,用数据线毗连电脑。然后就能够一键刷机了,它会主动找到与你手机相符的ROM,然后下载安拆。假设 没有会有提醒。
假设 是高手的话,那里网页的第一步还会有一个提醒,间接拔取他们的ROM包下载。我们点击进往
那里能够看到有许多型号手机的ROM,我们找到本身的手机,抉择 下载,能够用卡刷,也能够用线刷。
若何阅读android framework源码因为工做需要大量修改framework代码,在AOSP(AndroidOpenSourceProject)源码上破费了很多功夫,Application端和Services端都看和改了很多.假设 只是想看看一些常用类的实现,在Android包治理 器里把源码下载下来,随意一个IDE配好SourceCode的path看就行.但假设 想深进 的领会Android系统,那么能够看下我的一些简单的总结.常识JavaJava是AOSP的次要语言之一.没得说,必须娴熟 掌握 .娴熟 的AndroidApp开发LinuxAndroid基于Linux的,而且AOSP的选举 编译情况是Ubuntu12.04.所以娴熟 的利用并领会Linux那个系统是必不成少的.假设 你想领会偏底层的代码,那么必须领会根本的Linux情况下的法式开发.假设 再深进 到驱动层,那么Kernel相关的常识也要具备.MakeAOSP利用Make系统停止编译.领会根本的Makefile编写会让你更清晰 领会AOSP那个浩荡 的项目是若何构建起来的.GitAOSP利用git+repo停止源码治理 .那应该是法式员必备技能吧.C++Android系统的一些性能灵敏 模块及第三方库是用C++实现的,好比:Input系统,Chromium项目(WebView的底层实现).硬件顺畅 的国际收集AOSP代码下载需要你拥有一个顺畅 的国际收集.假设 鄙人载代码那一步就失往 耐烦 的话,那你必定没有耐烦 往 看那乱糟糟的AOSP代码.别的,好法式员应该城市需要一个顺畅 的Google.一台运行Ubuntu12.04的PC.假设 只是阅读源码而不做太多修改的话,其实不需要太高的设置装备摆设.一台Nexus设备AOSP项目默认只撑持Nexus系列设备.没有也不妨,你仍然能够读代码.但假设 你想在大牛之路走的更远,仍是改改代码,然后刷机调试看看吧.高操行 USB线要刷机时线坏了,没有更窝心的事儿了.软件Ubuntu12.04官方选举 ,没得选.OracleJava1.6重视 不要用OpenJDK.那是个坑,官方文档固然有写,但仍是零丁提一下.安拆:sudoapt-getinstallpython-software-propertiessudoadd-apt-repositoryppa:webupd8team/javasudoapt-getupdatesudoapt-getinstalloracle-java6-installersudoapt-getinstalloracle-java6-set-defaultEclipse估量 会有很多人吐槽,为什么要用那个老古董.其实原因很简单,适宜 .刚起头搞AOSP时,为了找到效率更优的东西,我测验考试过Eclipse,IntelliJIDEA,Vim+Ctags,SublimeText+Ctags.最末成果仍是Eclipse.次要长处有:有语法阐发(快速准确 的类,办法跳转).撑持C++(IntelliJ的C++撑持做的太慢了).嵌进 了DDMS,ViewHierarchy等调试东西.为了进步效率,花5分钟背下常用灵敏 键十分十分值得.调整好你的classpath,不要导进 无用的代码.因为AOSP项目代码其实是太多了.当你还不需要看C++代码时,不要为项目添加C++撑持,建索引过程会让你瓦解.IntellijIDEA开发App必备.当你要调试系统的某个功用是,经常 需要敏捷写出一个调试用App,那个时候老旧的Eclipse就欠好用了.ItellijIDEA的xml主动补全十分给力.巨人的肩膀那个必然要先读.项目介绍,代码下载,情况搭建,刷机办法,Eclipse设置装备摆设都在那里.那是一切的根底.那个其实是给App开发者看的.但是里面也有很多关于系统机造的介绍,值得细读.此老罗非彼老罗.罗升阳教师的博客十分有营养,根本能够做为指引你起头阅读AOSP源码的教程.你能够根据博客的时间挨次一篇篇挑需要的看.但那个系列的博客有些问题:早期的博客是基于旧版本的Android;大量的代码流程逃踪.读文章时你必然要清晰 你在看的工具在整个系统处于什么样的位置.邓凡平教师也是为Android大牛,博客同样很有营养.但是不像罗升阳教师的那么系统.的是一些手艺点的深进 切磋.Android官方Issue列表.我在开发过程中发现过一些希罕 的bug,最初发现那里根本都有笔录 .当然你能够提一些新的,有没有人改就是别的一回事了.必然要能顺畅 的利用那个东西.大量的相关常识是没有人系统的总结的,你需要本身搞定.其它代码组织AOSP的编译单位不是和git项目逐个对应的,而是和Android.mk文件逐个对应的.善用mmm号令停止模块编译将节约 你大量的时间.Binder那是Android最根底的历程间通信.在Application和Systemservices之间大量利用.你不只要晓得AIDL若何利用,也要晓得若何手写Binder接口.那对你理解Android的Application和Systemservices若何交互有十分重要的感化.Binder若何实现的倒没必要焦急看.HAL除非你对硬件特殊 感兴致 或者想往 计划公司上班,不然别花太多时间在那一层.CyanogenMod那是一个基于AOSP的第三方Rom.从那个项目标wiki里你能学到良多AOSP官方没有告诉你的工具.好比若何撑持Nexus以外的设备.DIA那是一个Linux下画UML的东西,可以帮你梳理看过的代码.XDA那里有最新资讯和最有趣的论坛.想到了再填补 .