Android_4.2_源码下载和编译环境安装及Android_4.2_源码编译
Android源码下载方法详解

Android: Android源码下载方法详解分类:Android平台安卓源码下载地址:/source/downloading.html相信很多下载过内核的人都对这个很熟悉git clone git:///kernel/common.git kernel但是这是在以前,现在如果这么执行的话,会显示如下内容Initialized empty Git repository in /home/star/working/kernel/.git/[0: 149.20.4.77]: errno=Connection refusedfatal: unable to connect a socket (Connection refused)通过浏览器输入/,发现该网站已经被重定向为/source/downloading.html可以在该页面的最后发现内核的下载方法。
下面我们介绍一下Android源码下载的步骤。
工作环境:操作系统:Ubuntu 10.04 或Ubuntu10.10git程序:1.7.0.4 或1.7.1转载请注明出处:/pku_android方法一:1.1 初始化安装环境参考网页/source/initializing.html主要要做的就是安装jdk和安装一些软件包$ sudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \libxml2-utils如果已经安装了,就不许要这步了1.2 无论下载内核和源码,都需要进行如下操作参考网页/source/downloading.html$ mkdir ~/bin$ PATH=~/bin:$PATH$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo如果出现: repo init error: could not verify the tag 'v1.12.7',执行下面的命令:curl /git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo建立一个文件夹,以便下载的内容保存其中$ mkdir WORKING_DIRECTORY$ cd WORKING_DIRECTORY@@@ 以下可以脚本实现autogit.rar @@@1.3 内核下载$ git clone https:///kernel/common.git kernel命令行最后面的kernel的意思是保存在这个文件夹下,所以可以是任何名字,该文件夹不需要自己去创建,最后的这个不写也没问题如果想下载其他版本的内核$ git clone https:///kernel/goldfish.git$ git clone https:///kernel/msm.git$ git clone https:///kernel/omap.git$ git clone https:///kernel/samsung.git$ git clone https:///kernel/tegra.git下载过程中,会有如下信息,速度快慢取决于网速了。
黑马程序员android开发笔记及源码

01、什么是3G02、android系统简介03、android背景介绍04、android的framewor简介05、两种虚拟机的比较06、sdk的下载以及简介07、创建android模拟器08、ddms简介09、platform-tools的简介及常见adb指令10、android项目的目录结构11、android下apk安装的过程12、常见的adb指令介绍13、创建模拟器遇到的常见错误14、电话拨号器15、点击事件的四种写法16、短信发送器17、相对布局&单位介绍18、现形布局&布局的组合19、表格布局&绝对布局20、帧布局21、测试相关概念22、android下junit测试框架配置23、logcat简介24、保存文件到手机内存25、android下文件访问的权限26、保存文件到SD卡中27、分析setting源代码获取SD卡大小28、_sharePreference入门29、xml文件的序列化30、采用pull解析xml文件31、采用断电调试的方法观察pull解析的的流程32、android下创建一个sqllite数据库33、sql语句实现数据库的增删改查34、系统api实现数据库的增删改查&Sqlite3工具的使用35、数据库的事物36、listView入门37、采用layoutInflater打气筒创建一个view对象38、采用数据适配器ArryAdapter39、常用数据适配器simpleAdapter40、数据适配器总结41、内容提供者简介42、内容提供者的实现43、短信的备份44、插入一条记录到系统短信应用45、内容观察者46、获取系统的联系人信息47、保存联系人到系统通讯录48、读取联系人的一个小细节49、网络图片查看器50、anr产生的原理&如何避免51、android消息机制入门52、网络html查看器53、字符乱码问题的处理54、采用get方式提交数据到服务器55、采用post方式提交数据到服务器56、提交数据到服务器中文乱码问题的处理57、采用httpclient提交数据到服务器58、异步http框架简介&实现原理59、异步http框架提交数据到服务器60、上传文件到服务器61、smartimageview&常见开源代码62、多线程下载的原理63、多线程断点下载的原理64、多线程java代码移植到android65、多线程下载文本页面的更新66、显示意图激活另一个activity67、隐式意图激活另一个activity68、隐式意图的配置69、隐式意图和显示意图的使用场景70、在不同activity之间数据传递71、activity的声明周期72、activity的启动模式73、activity横竖屏切换的声明周期74、开启新的activity获取他的返回值75、请求码和结果码的作用76、利用广播实现ip拨号77、短信窃听器78、自定义广播时间&发送自定义广播&广播接受者优先级79、采用服务执行长期后台操作80、采用服务窃听电话&服务的声明周期81、android进程优先级&为什么使用服务82、绑定方式开启服务&调用服务的方法83、服务的声明周期(混合开启84、采用aidl绑定远程服务85、代码注册广播接受者&利用广播调用服务的办法86、加载大图片到内存87、获取图片exif信息88、从gallery获取图片89、图片画画板90、扒开美女衣服91、图片的缩放92、图片的旋转93、图片的平移&镜面&倒影效果94、图片的合成95、图片的颜色处理96、多媒体播放api简介97、人脸识别98、mediaplayer的生命周期99、soundpoo简介100、sufaceview的生命周期101、播放在线视频102、视频播放器进度的处理103、调用系统照相机拍照和录像104、采用camera拍照105、常见对话框106、notification入门107、菜单108、android下的样式109、android下的主题110、代码编写ui111、html创建ui112、帧动画113、代码创建创建的tween动画114、xml文件定义动画115、传感器简介116、117、杀死进程118、apk的安装119、应用程序的反编译120、动态创建fragment121、用fragment创建一个选项卡122、fragment的向下兼容性123、fragment的生命周期124、fragment之间的通讯125、应用程序国际化04、android的framewor简介Wap:wait and playWireless Makeup Language(WML)精简的html语言Applications:android自带的基本上层应用Aplication framework:应用程序框架Librarics:Linux lernel:05、两种虚拟机的比较编译后文件格式:jvm:.java->.class->.jardalvik vm:.java->.dex->.odex基于的架构:jvm:基于栈的架构dalvik vm:基于寄存器的架构Cpu直接访问寄存器因此dalvik虚拟机的效率比jvm高06、sdk的下载以及简介->获取sdk工具包(sdk:standard develope kits)->ADT(android develop tools,实际上是eclipse的插件)SDK具体内容Android->SDK Plateform:开发时使用到的jar包->Samples for sdk:->ARM EABI V7a System Image:模拟器运行时的镜像->Intel n86 Aton System:模拟器运行时的镜像->MIPS System Image:模拟器运行时的镜像->google APIs:google提供的jar包,可以直接使用google提供的一些API ->source for android SDK:SDK全部的源代码Extrals:->tools:开发的工具->support library:实现高版本的android向下的兼容->google Admed Ads SDK:gongle提供的广告插件->Analyties App Irackiong SDK:应用的用户分析->cloud message:云消息->gongle play service:收费服务->google USB Driver:真实的设备驱动开发时:基于4.0,兼容2.2、2.3.307、创建android模拟器avd:android virture developerVGA:480*640(电视的标准分辨率)QVGA:240*320(四分之一)HVGA:320*480(一半)WVGA:480*800(width)FWVGA:480*854(更宽)08、ddms简介ddms:模拟器不支持中文,因此发送中文会显示不出来09、platform-tools的简介及常见adb指令Android调试桥:内部实现就是socket让两个系统之间实现数据交互->reset adb:模拟器找不到时候可以重启->adb device:列出所有的连接的设备->adb kill-server:杀死adb调试桥->adb start-server 启动adb调试桥dx.bat:将.class文件打包10、android项目的目录结构一:SDK的目录结构->Samples->Api demo:根据API demo(模拟器上面可以看见)的效果可以在sample中看见相应的代码->Source:jar包所有的sdk源代码都在这个文件夹里->SystemImage:系统镜像->temp:下载更新临时存储的文件夹,一般是空的->tools:emulater.ext 不同版本的模拟器二:New Android Application->theme:留给以后作为扩展,现在并没有太大的作用->target SDK:一般选择高版本,因为高版本对下兼容->mark project as a library:一般不选择,意思是将这个项目提供一个jar包供别人使用三:文件夹目录.setting:设置目录assets:资产目录,存放一些文件,这些文件会被原封不动打包到应用程序的apk中bin:gen:自动生成的目录->builderConfig.java:生成的配置信息->R.java:Android 4.1.2->android.jar开发环境,jar包可以在properties中修改,jar包就是SDK011、Android下apk的安装过程一、Android安装过程分析:->setContentView:甚至view的对象,把里面的xml文件加载到->在project中选择build automaticly会自动把文件生成字节码文件,.class $代表的class文件生成的是内部类->dex.bat文件会把.class文件生成.dex文件->apk压缩文件解压内部内容->META-INF:应用程序的签名eclipse的调试签名文件->res:资源文件->classes.dex:class文件->resources.arsc:资源ID映射->android软件安装的过程:->拷贝xxx.apk带/data/app/xxx-1.apk->在/data/data目录下创建一个文件夹,文件夹名称当前应用程序的报名012、常见adb指令前提:->设备连接上电脑而且驱动安装正常,如果安装不正常的话,会有黄色的问号显示;->设备上打开USB调试;指令:->adb device(如果启动发现这个程序没有安装会自动安装)->adb kill-server->adb start-server->adb uninstall <包名>->adb -s emulator-5554 install c:\\users\\administrator\\hello.apk如果有多个设备的话,如果不指定安装的是哪个设备程序会报错->adb push haha.prop /sdcard/haha.txt 将文件移到(360管家,豌豆荚之类的软件他们也是用的adb指令,倘若电脑上装这些软件的话,会因为两个adb指令抢端口号而挂掉)(adb版本之间兼容不是很好,经常报错可以考虑下版本的问题)->adb shell:远程连接到了android的linux终端ls:显示文件夹ps:显示正在运行的程序ping:网络连通性013、创建模拟器遇到的常见错误->路径最好不要有中文:->应用安装不上,或者安装模拟器的时候开启一个新的模拟器:可能是模拟器的资源被占用,模拟器在运行的时候其实占用着硬盘上面的一个文件,这个文件位于工作空间.android/avd/iphone.avd 里面会有镜像文件,当一个模拟器开启起来了,就给你创建一个文件夹.knock的文件夹,代表着这个模拟器被锁定了,如果把模拟器关掉,就没有程序占据这几个镜像资源了,那么这几个程序就会被自动删除。
安卓系统4.2开机几个画面的修改方法

开机画面的修改1.图片说明现在我们机器开机一共有4部分的图片显示。
第一张是bootload里面显示的图片M3图片M6图片在修改此图的位置,也可以修改uboot内充电图片第二张就是我们的绿色机器人图片。
第三张就是我们android字串滚动的动画。
2.修改图片下面我们就开始对相应图片来进行修改。
1)对于第一张图片:M3的修改方法:我们可以在device/amlogic/common/res/logo/ 目录下添加或者修改xxx.BMP图片同时在device/amlogic/xxxref目录下修改BoardConfig.mk文档关于Logo部分代码,如:TARGET_AMLOGIC_AML_LOGO :=device/amlogic/common/res/logo/a9.1024x600.bmp//A9 logo图片TARGET_AMLOGIC_LOGO := device/amlogic/common/res/logo/robot.1024x600.bmp //此Logo为Recovery下机器人图片M6的修改方法:我们可以在device\amlogic\xxxref\res_pack\res目录下添加或者修改xxx图片注意:1、图片是没有后缀名的2、必须遵循的——图片必须是16位RGB565的。
3、建议的是——图片尽可能的小,不需要做成全屏的,这样可以明显的提高启动速度;4、图片的宽度尽量是4的整数倍。
同时在device/amlogic/xxxref目录下修改BoardConfig.mk文档关于Logo部分代码,如:TARGET_AMLOGIC_LOGO := $(PRODUCT_OUT)/res-package.img(由我们修改的图片文件编译生成的res-package.img)TARGET_AMLOGIC_RES_PACKAGE :=device/amlogic/xxxref/res_pack/res(指定图片所在目录)2)对于第二张图片,就会稍微复杂一点。
Android 4.2_原生_软件列表_可精简列表

Andriod 4.0.4系统包Andriod 4.1.1系统包ApplicationsProvider.apk ApplicationsProvider.apk BackupRestoreConfirmation.apk BackupRestoreConfirmation.apk Bluetooth.apk Bluetooth.apk BooksTablet.apk Books.apk BrowserGoogle.apk BrowserGoogle.apk Calculator.apk Calculator.apk CalendarGoogle.apk CalendarGoogle.apk CalendarProvider.apk CalendarProvider.apk CameraGoogle.apkCertInstaller.apk CertInstaller.apk ChromeBookmarksSyncAdapter.apk ChromeBookmarksSyncAdapter.apk Contacts.apk Contacts.apk ContactsProvider.apk ContactsProvider.apkCurrents.apk DefaultContainerService.apk DefaultContainerService.apk DeskClockGoogle.apk DeskClockGoogle.apk DownloadProvider.apk.DownloadProvider.apk DownloadProviderUi.apk DownloadProviderUi.apk DrmProvider.apk DrmProvider.apk EmailGoogle.apk EmailGoogle.apk ExchangeGoogle.apk Exchange2Google.apk FaceLock.apk FaceLock.apk GalleryGoogle.apk GalleryGoogle.apk GenieWidget.apk GenieWidget.apk Gmail.apk Gmail.apkGmsCore.apk GoogleBackupTransport.apk GoogleBackupTransport.apk GoogleContactsSyncAdapter.apk GoogleContactsSyncAdapter.apkGoogleEars.apk GoogleEarth.apk GoogleEarth.apk GoogleFeedback.apk GoogleFeedback.apk GoogleLoginService.apk GoogleLoginService.apk GooglePartnerSetup.apk GooglePartnerSetup.apk GoogleQuickSearchBox.apkGoogleServicesFramework.apk GoogleServicesFramework.apk GoogleTTS.apk GoogleTTS.apk HoloSpiralWallpaper.apk HoloSpiralWallpaper.apk HTMLViewer.apk HTMLViewer.apkInputDevices.apk KeyChain.apk KeyChain.apk LatinImeDictionaryPack.apk LatinImeDictionaryPack.apk LatinImeGoogle.apk LatinImeGoogle.apk Launcher2.apk Launcher2.apk LiveWallpapers.apk LiveWallpapers.apk LiveWallpapersPicker.apk LiveWallpapersPicker.apkMagazines.apk Map.apk Maps.apk MediaProvider.apk MediaProvider.apk MediaUploader.apk MediaUploader.apk Microbes.apkMms.apk Mms.apk Music2.apk Music2.apk MusicFX.apk MusicFX.apk NetworkLocation.apk NetworkLocation.apk Nfc.apk Nfc.apk NoiseField.apk NoiseField.apk OneTimeInitializer.apk OneTimeInitializer.apk PackageInstaller.apk PackageInstaller.apk PhaseBeam.apk PhaseBeam.apk Phone.apk Phone.apk Phoneskyapk Phonesky.apk PlusOne.apk PlusOne.apk Settings.apk Settings.apk SettingsProvider.apk SettingsProvider.apk SetupWizard.apk SetupWizard.apk SharedStorageBackup.apk SharedStorageBackup.apk SoundRecorder.apk SoundRecorder.apk Stk.apx Stk.apk Street.apk Street.apk Superuser.apk Superuser.apk SystemUI.apk SystemUI.apk TagGoogle.apk TagGoogle.apk Talk.apk Talk.apk Talkback.apk talkback.apk TelephonyProvider.apk TelephonyProvider.apk Thinkfree.apk Thinkfree.apk UserDictionaryProvider.apk UserDictionaryProvider.apkVelvet.apk VideoEditorGoogle.apk VideoEditorGoogle.apk Videos.apk Videos.apk VisualizationWallpapers.apk VisualizationWallpapers.apk VoiceDialer.apkVoiceSearch.apkVoiceSearchStub.apk VpnDialogs.apk VpnDialogs.apk YouTube.apk YouTube.apkAndriod 4.2系统包说明ApplicationsProvider.apk应用程序存储、 程序管理器(不可删) BackupRestoreConfirmation.apk(不能删)BasicDreams.apk 4.2新增Bluetooth.apk蓝牙(不能删)Books.apk谷歌读书软件(可删)BrowserGoogle.apk自带浏览器(可删,不过我觉得很好用)Calculator.apk计算器(可删)CalendarGoogle.apk日历(可删)CalendarProvider.apk日历储存(日历删了,这个也删除)相机(不能删,4.1后没有此包)CertInstaller.apk证书(不能删)ChromeBookmarksSyncAdapter.apk书签同步(可删,要用Chrome浏览器同步的不要删除) ConfigUpdater.apk配置更新(不能删,4.2新增)Contacts.apk通讯录(建议保留,原生通讯录)ContactsProvider.apk联系人储存(建议保留)Currents.apk新鲜汇(4.1后新增,可删)DefaultContainerService.apk软件包访问(不能删)DeskClockGoogle.apk时钟(可删)DownloadProvider.apk下载提供(可删,如果用原生浏览器和Chrome不要删除)DownloadProviderUi.apk下载提供UI(下载提供删除了,这个也可以删除) DrmProvider.apk DRM受保护数据存储服务(不能删)EmailGoogle.apk电子邮件(可删)Exchange2Google.apk电子邮件服务(电子邮件删除了,这个也可以删除) FaceLock.apk人脸识别(不能删,删了就不能通过人脸锁屏了)FusedLocation.apk 4.2新增GalleryGoogle.apk图库 从4.1包括了相机(不要删,很强大,很好用) GenieWidget.apk新闻与天气(可删)Gmail2.apk GMAIL邮箱(可删)GmsCore.apk谷歌PLAY服务(4.1后新增,可删,不用Google PLAY的可删)GoogleBackupTransport.apk谷歌备份传输(建议不删)GoogleContactsSyncAdapter.apk谷歌联系人同步适配器(可删,如果不用谷歌联系人)GoogleEars.apk歌曲识别功能(可删)GoogleEarth.apk谷歌地球(可删)GoogleFeedback.apk电子市场反馈(可删)GoogleLoginService.apk谷歌账户管理(可删,不用谷歌帐号的可删除) GooglePartnerSetup.apk谷歌合作伙伴(可删)谷歌搜索(可删,4.1后没有此包) GoogleServicesFramework.apk谷歌服务构架(可删)GoogleTTS.apk文字转语音(可删)HoloSpiralWallpaper.apk壁纸相关(不能删)HTMLViewer.apk HTML查看器(可删)InputDevices.apk 4.1后新增(不能删)KeyChain.apk密码管理服务(不能删)LatinImeDictionaryPack.apk词典大全(可删)LatinImeGoogle.apk安卓键盘(可删)Launcher2.apk启动器(不能删)LiveWallpapers.apk动态壁纸(可删)LiveWallpapersPicker.apk动态壁纸选择器(可删)Magazines.apk谷歌杂志(4.1后新增,可删)Maps.apk地图(可删)MediaProvider.apk媒体储存(不能删)MediaUploader.apk上传的内容(可删)微生物动态壁纸(可删,4.1后没有此包)Mms.apk原生短信(不能删)Music2.apk音乐(可删)MusicFX.apk音乐音效(可删)NetworkLocation.apk提供网络位置(可删)Nfc.apk近场通讯(建议不删)NoiseField.apk动态壁纸(可删)OneTimeInitializer.apk初次启动初始化(建议不删)PackageInstaller.apk打包安装管理(不能删)PhaseBeam.apk动态壁纸(可删)Phone.apk手机拨号器(不能删)Phonesky.apk Google play电子市场(可删)PhotoTable.apk照片编辑器(不能删,4.2新增)PlusOne.apk google+社区软件(可删)Settings.apk设置(不能删)SettingsProvider.apk设置储存(不能删)SetupWizard.apk设置向导(不能删)SharedStorageBackup.apk共享存储备份(不能删)SoundRecorder.apk录音机(建议不删)Stk.apk SIM卡管理程序(不能删)Street.apk谷歌街景(可删)Superuser.apk Root后才有的(当然不能删)SystemUI.apk系统用户界面(不能删)TagGoogle.apk NFC标记(建议不删)Talk.apk谷歌talk(可删)talkback.apk盲人辅助(可删)TelephonyProvider.apk电话信息储存(不能删)Thinkfree.apk文档软件(可删)UserDictionaryProvider.apk我的字典(不能删)Velvet.apk谷歌搜索(4.1后新增,可删,要用谷歌搜索的别删) VideoEditorGoogle.apk电影(可删)Videos.apk视频(可删)VisualizationWallpapers.apk可视化壁纸(可删)语音拨号器(可删,4.1后没有此包)语音搜索(可删,4.1后没有此包) VoiceSearchStub.apk语音搜索(4.1后改名了 不用语音搜索的可删) VpnDialogs.apk VPN连接上网管理(建议不删)YouTube.apk YouTube视频网站(可删)可删)。
Android开发教程入门(软件安装流程)

Android开发教程第一部分:安装SDK这里介绍如何安装Android的SDK开发包和配置开发环境。
如果你还没有下载SDK,点击下面的链接开始。
Download the Android SDK系统和软件配置要求要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下:支持的开发环境EclipseEclipse 3.2,3.3(Europa)Android开发工具插件(可选)其他的开发环境或者IDEJDK5.0或者JDK6.0(仅有JRE是不够的)安装SDK下载好SDK包后,将zip文件解压缩至合适的地方。
在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tool s加入到你的路径中1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。
如果没有找到设定PATH变量的行,你可以自己添加一行:export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径>2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。
如果还没有在机器上设定这个文件,你可以创建一个.ba sh_profile文件。
3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。
通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。
需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。
安装Eclipse插件(ADT)如果你选择Eclipse作为Android的开发环境,可以安装一个专门为Android定制的插件:Android Development Tools(ADT),ADT插件集成了对Android工程和工具的支持,它包含了大量功能强大的扩展,使得创建、运行、调试Android程序更简单更快捷。
Ubuntu下Android源码修改、编译及运行、launcher定制

环境Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统GCC版本:gcc version 4.5.2Java版本:java version "1.6.0_26"下载android源码前注意:1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。
2、保证Ubuntu系统进行Internet访问。
联网方法:采用拨号进行连接。
相关操作步骤如下所示:1、虚拟机→设置→硬件→网络适配器→网络连接→桥接2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下:$ pppoeconf //打开后输入上网账号跟密码,确认保存$ sudo pon dsl-provider //上网连接命令经过这两个步骤后就可以进行上网了。
Android源码编译所依赖的tools01.$ sudo apt-get update02.$ sudo apt-get -y install git-core03.$ sudo apt-get -y install gnupg04.$ sudo apt-get -y install sun-java6-jdk flex05.$ sudo apt-get -y install bison06.$ sudo apt-get -y install gperf07.$ sudo apt-get -y install libsdl-dev08.$ sudo apt-get -y install libesd0-dev09.$ sudo apt-get -y install libwxgtk2.6-dev10.$ sudo apt-get -y install build-essential11.$ sudo apt-get -y install zip12.$ sudo apt-get -y install curl13.$ sudo apt-get -y install libncurses5-dev14.$ sudo apt-get -y install zlib1g-dev15.$ sudo apt-get -y install valgrind注意:(如果是32bit的系统的话,则要更改几个Android.mk文件)01./external/clearsilver/cgi/Android.mk02./external/clearsilver/java-jni/Android.mk03./external/clearsilver/util/Android.mk04./external/clearsilver/cs/Android.mk用gedit打开,修改m64为m32即可另外将build/core/main.mk中的ifneq (64,$(findstring 64,$(build_arch)))修改为:ifneq (i686,$(findstring i686,$(build_arch)))对于32位系统所出现的问题,解决方法:Error1:make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] error 1在terminal中输入$ gedit frameworks/base/libs/utils/Android.mk将LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)修改为:LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissiveError2:make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] error 1此处编译错误是由于ubuntu 11.10采用了GCC4.6.1导致的修改源码目录下/build/core/combo/HOST_linux-x86.mk并将以下语句:HOST_GLOBAL_CFLAGS+= -D_FORTIFY_SOURCE=0修改为:HOST_GLOBAL_CFLAGS+= -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0Android源码下载1、安装repo安装过程步骤如下所示:Repo下载安装1、$ mkdir ~/bin //在home目录下创建bin文件夹2、$ PATH=~/bin:$PA TH //环境变量设置3、$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo //repo下载4、$ chmod a+x ~/bin/repo //权限设置,保证repo可执行Repo client初始化1、$ mkdir Android //创建Android目录,用于存放下载的android源码2、$ cd Android //进入到Android目录3、$ repo init -u https:///platform/manifest //指定URL清单,指定包含在Android源代码的各种存储库将被安置在工作目录中当然也可以指定android版本,使用如下命令:$ repo init -u https:///platform/manifest -b android-4.0.1_r1Android源码文件获取$ repo sync注意:在Android源码下载过程中凡出现问题,可以进入Android源码下载的相关官方网站/source/downloading.html 进行查看。
ubuntu安装及android源码编译环境搭建

ubuntu安装及android源码编译环境搭建为了能够编译和运行 Android 源码,我们需要在 Ubuntu 系统中搭建相应的开发环境。
下面是 Ubuntu 安装及 Android 源码编译环境搭建的详细步骤:一、Ubuntu 系统的安装2.将ISO文件写入USB或DVD中,制作启动盘。
3.在计算机上将系统引导到USB活动盘或DVD上,并启动系统。
4. 在启动菜单中选择安装 Ubuntu,按照提示完成安装过程。
二、系统更新和软件安装1.安装后,运行系统更新以获取最新的软件包和安全修复程序。
可以在终端中运行以下命令:```sudo apt updatesudo apt upgrade```2.安装开发工具和编译器。
可以在终端中运行以下命令:```sudo apt install build-essentialsudo apt install openjdk-8-jdksudo apt install pythonsudo apt install gitsudo apt install curlsudo apt install gnupg```1. 配置 Git 个人信息,可以在终端中运行以下命令:```git config --global "Your Name"``````chmod a+x ~/bin/repo```3. 配置 PATH 环境变量,这样在终端中就可以使用 Repo 了。
打开`~/.bashrc` 文件,并在末尾添加以下内容:```export PATH=~/bin:$PATH```4.执行以下命令使配置生效:```source ~/.bashrc```1. 创建一个空文件夹作为 Android 源码存放的目录,并在终端中进入该目录。
```repo init -u <URL> -b <branch>````````````repo sync```5.开始编译。
Ubuntu12.04下在Android4.0.4源码下载及其编译过程

Ubuntu12.04下在Android4.0.4源码下载及其编译过程一、下载源码1、下载工具repo:https:///tools/repo/在本地目录建个bin的文件夹,进入bin文件夹;通过git下载:1.git clone https:///tools/repo下载完成后,进入repo文件夹,切换到稳定分支:1.git checkout -b stable origin/stable将repo命令所在的目录,即/home/yourname/bin/repo添加到环境变量中:1.export PATH=$PATH:~/bin/repo在本地目录下新建目录:android4.0.4,并进入该文件夹:[html]view plaincopy1.cd ~;mkdir android4.0.4;cd android4.0.4;在文件夹下执行下面命令来下载Android源码:1.repo init -u https:///platform/manifest你也可以直接切换到你想要下的版本的分支,而不是“master”分支:1.repo init -u https:///platform/manifest -b android-4.0.4_r2关于到底是哪个分支,根据自己的情况而定,详情可参照:https:///platform/manifest/如你想下载最新的Android4.1代码,即可将分支名称更换成:android-4.1.1_r4你也可以参照官网的下载方式来下载:/source/downloading.html实验证明,我总是在下载那个repo工具的时候,无法连接到相应的地址。
下载是个漫长的过程,下载完成后的大小大概有14G,所以要提前准备好这么大的空间。
下载完成后的目录大概有这些:如图二、编译源码如果你的电脑的环境经常做开发,那么很多环境应该已经搭建好了,如果没有,可以参照官网:/source/initializing.html这里要提醒的是:用apt-get或者ubuntu软件中直接安装的jdk,jre的时候,编译Android是总是编译不过,出现JDK版本不一致的情况;解决办法如下:到oracle官网中下载jdk:/technetwork/java/javase/downloads/index-jsp-138363.html建议下载这个:jdk-6u35-linux-i586.bin下载完成后,运行得到一个jdk1.6.0_35文件夹,然后,将相应的JAVA环境加到系统环境中,简单的可以这样:1.vi ~/.bashrc在.bashrc文件最后添加:1.JAVA_HOME=/home/clw712/tools/jdk1.6.0_352.CLASSPATH=$JAVA_HOME/lib/3.ANDROID_PRODUCT_OUT=/home/clw712/bin/android/out/target/product/generic4.ANDROID=/home/clw712/bin/android5.ANDROID_SWT=/home/clw712/bin/android/out/host/linux-x86/framework6.PATH=$ANDROID/out/host/linux-x86/bin:$ANDROID/prebuilt/android-arm/kernel/:$JAVA_HOME/bin:$ANDROID_PRODUCT_OUT:$PATH7.8.export PATH JAVA_HOME CLASSPATH ANDROID_PRODUCT_OUT ANDROID_SWT当然上述路径还有后面编译好了,用到的路径,是用来运行emulator的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android 4.2源码的下载和编译环境的安装及源码的编译Google于2012.11.14发布了Android4.2的源码,下面把本人在ubuntu10.04 的64位系统上下载源码,和编译源码做个记录备份,也供有需要的人参考,若是在下载编译安装Android源代码遇到问题,可加QQ群交流: 217706590,难免有错,敬请见谅,还忘勿吝啬指出。
源代码下载、编译环境安装、源代码编译和运行模拟器的可能出现的一些错误在本文最后一章节,若出现类似错误,可以参考。
1、源码的下载源代码的下载,首先需要安装以下软件:curl 和git-core1.1安装curl:在终端中执行:sudo apt-get install curl1.2安装git-core1.2.1在用户目录下新建bin文件在终端中执行:mkdir ~/bin将~/bin添加环境变量,作用是:要将git软件下载安装在此目录,在别的目录运行可能会找不到此软件,所以要添加到环境变量中在终端中执行:PA TH=~/bin:$PATH1.2.2安装git-core在终端中执行:curl https:///dl/googlesource/git-repo/repo§> ~/bin/repo给repo执行权限:chmod a+x ~/bin/repo1.3 下载源代码1.3.1进入要源代码将要保存的目录如我的源代码保存在:、/opt/android/src在终端中执行:cd /opt/android/src 进入到src目录中1.3.2 获取repo最新的配置repo init -u https:///platform/manifest§若是执行错误则用以下命令:~/bin/repo init -u https:///platform/manifest§1.3.3 下载源代码对于下载不同版本的android,指定一个manifest分支(即只指明android对应的版本),使用-b参数(即下载某个版本的源代码),如:对于4.2的版本,将命令修改为repo init -u https:///platform/manifest§ -b android-4.2_r1若是执行错误则用以下命令:~/bin/repo init -u https:///platform/manifest§ -b android-4.2_r1 执行以上命令后,会在/opt/android/src目录中生成一个.repo的目录,此目录保存了将要下载的源代码的相关信息同步获取源码#~/bin/repo sync如果中间出现中断,这个很正常,你可以再次输入~/bin/repo sync 命令来进行下载。
根据网速的不同,下载时间也有快慢,最好在睡觉前或下班后下载代码,由于源文件比较大,一般国内都要5小时左右甚至更久。
若是出现以下信息,表示代码以下载完成:Fetching projects: 100% (166/166), done.Syncing work tree: 100% (165/165), done.运行~/bin/repo sync 还可以重新校对下载的源码,若是有问题或遗漏了一些文件会重新下载,并从.repo目录中导出到实际源码中注:此步可能会出现下载错误,请查看本文最后部分的说明2、编译环境的安装首先若是没有修改源,请修改为国内的源,从而提高软件的下载安装的速度可以参考下面博客的内容添加一些速度快的源,如:台湾源、Ubuntu官方上海源、网易、搜狐、/houxn22/item/48f0f7d150657c16d80e4468安装编译所需的软件1、安装jdksudo apt-get install sun-java6-jdk2、安装其它一些编译所需软件在终端中执行:sudo apt-get install git-core 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基本只要安装以上软件即可,官方网站上说的其它一些软件或者设置可以不用理会。
注:此步可能会出现错误,请查看本文最后部分的说明3、编译源代码3.1编译初始化:在终端中执行:source build/envsetup.sh或:. build/envsetup.sh执行后输出:source build/envsetup.shincluding device/asus/grouper/vendorsetup.shincluding device/asus/tilapia/vendorsetup.shincluding device/generic/armv7-a-neon/vendorsetup.shincluding device/generic/armv7-a/vendorsetup.shincluding device/generic/mips/vendorsetup.shincluding device/generic/x86/vendorsetup.shincluding device/samsung/maguro/vendorsetup.shincluding device/samsung/manta/vendorsetup.shincluding device/samsung/toroplus/vendorsetup.shincluding device/samsung/toro/vendorsetup.shincluding device/ti/panda/vendorsetup.shincluding sdk/bash_completion/adb.bash3.2选择编译目标:lunch full-eng执行后会又以下信息提示:============================================PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=4.2TARGET_PRODUCT=fullTARGET_BUILD_VARIANT=engTARGET_BUILD_TYPE=releaseTARGET_BUILD_APPS=TARGET_ARCH=armTARGET_ARCH_V ARIANT=armv7-aHOST_ARCH=x86HOST_OS=linuxHOST_OS_EXTRA=Linux-2.6.32-45-generic-x86_64-with-Ubuntu-10.04-lucidHOST_BUILD_TYPE=releaseBUILD_ID=JOP40COUT_DIR=out============================================3.3编译代码:在终端中执行:make -j4-j4:表示用四个线程来编译:编译根据不同机器的配置不同所需时间也有很大差异,如本人电脑为intel i5-2300四核2.8,2G内存,晚上8点开始编译,将近凌晨2点才编译完成,所以编译源代码也最好是在睡觉时或下班后进行。
出现以下信息表示编译完成:target Java: ContactsTests (out/target/common/obj/APPS/ContactsTests_intermediates/classes)target Dex: ContactsDone!Install: out/target/product/generic/system/app/Browser.odexInstall: out/target/product/generic/system/app/Browser.apkNote: Some input files use or override a deprecated API.Note: Recompile with -Xlint:deprecation for details.Copying: out/target/common/obj/APPS/Contacts_intermediates/noproguard.classes.dex target Package: Contacts (out/target/product/generic/obj/APPS/Contacts_intermediates/package.apk)'out/target/common/obj/APPS/Contacts_intermediates/classes.dex' as 'classes.dex'... Processing target/product/generic/obj/APPS/Contacts_intermediates/package.apkDone!Install: out/target/product/generic/system/app/Contacts.odexInstall: out/target/product/generic/system/app/Contacts.apkbuild/tools/generate-notice-files.py out/target/product/generic/obj/NOTICE.txt out/target/product/generic/obj/NOTICE.html "Notices for files contained in the filesystem images in this directory:" out/target/product/generic/obj/NOTICE_FILES/srcCombining NOTICE files into HTMLCombining NOTICE files into textInstalled file list: out/target/product/generic/installed-files.txtTarget system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.imgRunning: mkyaffs2image -f out/target/product/generic/system out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img Install system fs image: out/target/product/generic/system.imgDroidDoc took 5331 sec. to write docs to out/target/common/docs/doc-comment-check编译可能出现的错误,请查看本文最后部分的说明4、运行模拟器在终端中执行:emulator运行模拟器可能出现的错误,请查看本文最后部分的说明模拟器运行截图:初始化:开机后的待机界面:待机二:主菜单一:主菜单二:设置菜单中查看本版号:锁屏一:锁屏二:5、相关问题的解决办法5.1 下载源代码可能会提示的错误5.1.1 error: Exited sync due to fetch errors...希望各位不要出现这个错误,出现这个错误就要折腾一会了首先继续repo sync,若是一直提示这个错误,那么就按照下面的方法来做吧:关于这个问题其实google是有说明的/source/downloading.html,为了防止连接数过多,每个ip都需要认证。