快速搭建android5.1系统源码编译环境
Android开发环境搭建方法
Android开发环境搭建方法Android开发环境搭建方法比较烦琐,相对于Windows Mobile平台。
Android手机网教你如何一步一步搭建开放环境。
1.首先下载Android SDK参考文章,各个操作系统版本及下载链接参考/Android-SDK/3.html(文件大小在58MB左右)2.接下来下载Jave Runtime Environment (JRE) Java运行时库,由于Android平台的开发目前官方公开的是Java接口,所以需要用到它,还有就是它的IDE也需要这个才可以运行。
Sun 公司官方下载链接/zh_CN/download/manual.jsp(文件大小在7MB左右)3.然后下载集成开发环境IDE,使用任何工具都可以开发,一般Java程序员喜欢图形化的开发管理方式,可以使用Eclipse、JBuilder等工具开发,官方推荐使用Eclipse开发,下载链接/downloads/(文件大小在 78MB~150MB左右)4.如果使用Eclipse来开发的话,需要安装Android for Eclipse的插件,安装方法图解教程如下:Android开发环境搭建图文教程Android开发首先需要搭建完整的开发环境,由于软件均是基于Dalvik Java Virtual Machine运行的所以Google官方推荐使用主流的Java开发IDE Eclipse。
我们需要下载必要的开发组件。
1)Java运行时库(JRE),由于Eclipse使用Java开发,所以需要它才可以正常运行IDE。
2)Eclipse集成开发环境,官方提供的Android开发插件ADT Plugin是基于Eclipse 编写的,当然用户可以使用NetBean、JBuilder当作代码编辑器使用,但目前没有完整的调试集成。
3)Eclipse ADT Plugin插件是Android Develop Tool Kit的插件,用户需要安装它才能在Eclipse中建立和调试Android程序。
在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)
在前一篇文章提到,从源代码树下载下来的最新Android源代码,是不包括内核代码的,也就是Android源代码工程默认不包含Linux Kernel代码,而是使用预先编译好的内核,也就是prebuilt/android-arm/kernel/kernel-qemu文件。
那么,如何才能DIY自己的内核呢?这篇文章一一道来。
一. 首选,参照前一篇在Ubuntu上下载、编译和安装Android最新源代码准备好Android源代码目录。
二. 下载Linux Kernel for Android源代码。
1. 使用GIT工具下载,执行以下命令:USER-NAME@MACHINE-NAME:~/Android$ mkdir kernelUSER-NAME@MACHINE-NAME:~/Android$ cd kernelUSER-NAME@MACHINE-NAME:~/Android/kernel$ git clonegit:///kernel/common.git同样是经过漫长的等待后,在kernel目录下有一个common目录,Linux内核代码就在这里了。
2. 下载完成后,可以查看下载的内核代码版本:USER-NAME@MACHINE-NAME:~/Android/kernel$ cd commonUSER-NAME@MACHINE-NAME:~/Android/kernel/common$ git branch android-2.6.363. 下载完Android的Linux内核代码后,会发现在arch/arm/configs下没有模拟器要使用的硬件配置文件goldfish_defconfig,而这个配置文件是编译内核代码时需要用到的,因此,需要checkout goldfish版本:USER-NAME@MACHINE-NAME:~/Android/kernel/common$ git branch -a * android-2.6.36remotes/origin/HEAD -> origin/android-2.6.36remotes/origin/android-2.6.35remotes/origin/android-2.6.36remotes/origin/archive/android-2.6.25remotes/origin/archive/android-2.6.27remotes/origin/archive/android-2.6.29remotes/origin/archive/android-2.6.32remotes/origin/archive/android-gldfish-2.6.29remotes/origin/archive/android-goldfish-2.6.27选择android-gldfish-2.6.29:USER-NAME@MACHINE-NAME:~/Android/kernel/common$ git checkoutremotes/origin/archive/android-gldfish-2.6.29下载完毕后,就能在arch/arm/configs下看到goldfish_defconfig这个文件了。
Android源码编译的全过程记录
Android源码编译的全过程记录写本篇⽂章主要参考了官⽅⽂档和⽹上的⼀些资料,但是对于Android最新的代码来说,⽹上资料有些已经过时。
本⽂中步骤已经作者实验,⼤家可以亲⾃执⾏试试。
由于没有使⽤Eclipse的习惯,所以没有做Eclipse的相关配置。
编译环境:ubuntu9.10,widnows平台⽬前不被⽀持。
1)安装必要的软件环境$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev官⽅推荐的就是上⾯这些,如果在编译过程中发现某些命令找不到,就apt-get它。
可能需要的包还有:$ sudo apt-get install make$ sudo apt-get install gcc$ sudo apt-get install g++$ sudo apt-get install libc6-dev$ sudo apt-get install patch$ sudo apt-get install texinfo$ sudo apt-get install zlib1g-dev$ sudo apt-get install valgrind$ sudo apt-get install python2.5(或者更⾼版本)需要注意的是,官⽅⽂档说如果⽤sun-java6-jdk可出问题,得要⽤sun-java5- jdk。
经测试发现,如果仅仅make(make不包括make sdk),⽤sun-java6-jdk是没有问题的。
⽽make sdk,就会有问题,严格来说是在make doc出问题,它需要的javadoc版本为1.5。
因此,我们安装完sun-java6-jdk后最好再安装sun-java5-jdk,或者只安装sun-java5-jdk。
安卓系统源码编译
安卓源码编译1、编译环境的搭建操作系统推荐安装64位的ubuntu10.04,其他版本的ubuntu也可以安装,但是可能出现一些莫名其妙的Bug。
系统安装结束之后,还需要安装一些编译源码需要的工具和依赖包。
具体内容如下:确认下列软件安装成功并且版本号正确:1.1 gcc4.4,而不是gcc4.6,如果是4.6,需要安装gcc4.4,命令如下:sudo apt-get install gcc-4.4sudo apt-get install g++-4.4cd /usr/binls -l gcc*sudo mv gcc gcc.baksudo ln -s gcc-4.4 gccls -l g++*sudo mv g++ g++.baksudo ln -s g++-4.4 g++gcc -vg++ -v1.2 python2.5-2.7,ubuntu10.04版本,默认的python版本是2.6。
1.3 JDK版本是1.6.0,而不是openJDK,1.4 安装git sudo apt-get install git-core gnupg1.5 一些依赖包的安装:Ubuntu系统版本不同,所需要安装的依赖包也不同,具体情况如下所述:u buntu 10.04(64位)$ 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 xsltprocubuntu 11.10(64位)$ sudo apt-get install libx11-dev:i386ubuntu 12.04(64位)$ sudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \python-markdown libxml2-utils xsltproc zlib1g-dev:i386$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so1.6 调试工具的安装sudo apt-get install valgrind2、安卓系统源码编译依次执行如下命令:source build/envsetup.shlunch full-engmake -j4建议:最后一条命令使用make showcommands,这样可以显示编译命令,使得编译的时候,屏幕没有输出的时候,不会感觉无聊。
搭建android源码编译环境
搭建android源码编译环境-何1制作启动盘(图仅供参考)1.1准备工作(1)准备1G以上的U盘一个;(2)下载Ubantu 12.04光盘镜像文件,如:ubuntu-12.04.2-desktop-i386,不是很大,约700M;注意:该过程会将你的U盘格式化,里面所有的数据均会丢失,请提前做好备份;(3)下载UltraISO;(4)同时,准备一空磁盘(D、E、F均可),留待安装Ubantu。
1.2制作启动盘(1)打开UltraISO软件界面,打开你所需要写入U盘的镜像,就是你所下载的.ISO系统镜像。
(2)点击—>启动—>写入硬盘镜像—>便捷启动—>写入新的硬盘主引导记录(MBR)—>USB+ZIP+—>写入。
打开系统镜像写入镜像到U盘,注意写入方式,点击写入写入成功之后,制作启动盘成功。
2用启动盘安装Ubantu系统2.1设置BIOS启动模式(1)重启电脑进入BIOS,设置从USB启动-----USB-HDD(USB硬盘模式),BIOS版本会有不同,设置方式也略有不同。
2.2启动盘安装Ubantu系统(1)插入启动盘,重启电脑进到了ubuntu的安装界面,选择安装语言,这里的语言仅仅指安装过程中的语言(支持中文安装),下拉左侧选择“中文(简体)”,然后点击“安装Ubantu”。
功后进行,不然安装过程会很慢,选择“继续”。
项,人工进行分区。
(下图为重装Ubantu,仅供参考)(4)在磁盘管理中删除一个空盘(之前准备的空磁盘),此时磁盘中有“空闲”的空间,如下图:(5)创建新分区,选择“空闲”磁盘136000m,点击下面的“添加”得到如下界面,选择“主分区”,输入135000空间大小为根目录,文件格式一般选择“Ext4日志文件系统”,挂载点选择“/”.(6)交换分区,Ubuntu中必须创建至少两个分区,一个是刚才我们创建的根目录,一个是交换分区swaparea,将剩下的1000Mb分给该分区(交换分区大小设置为你的物理内存大小或少于内存,不能大于你的物理内存).(7)点击“现在安装”,ubuntu已经开始复制文件了,安装正在进行,接下来会让你选择所在地,为的是对UMT时间进行调整.(8)接下来选择Keyboardlayout键盘布局,一般情况下保持默认,你可以测试你的键位是否正确,如果设置错误也可以在进入系统之后进行更改.(9)接下来输入你的用户信息即密码.(10)几分钟过后Ubuntu就安装好了,重启电脑可进入Ubantu系统.3安装jdk1.63.1替换源列表(1)首先备份Ubuntu 12.04源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表,有备无患嘛)(2)修改更新源sudo gedit /etc/apt/sources.list (打开Ubuntu 12.04源列表文件)用以下源列表替换Ubuntu 12.04源列表:#deb cdrom:[Ubuntu 12.04.2 LTS _Precise Pangolin_ - Release i386 (20130213)]/ precise main restricted# See /community/UpgradeNotes for how to upgrade to# newer versions of the distribution.deb /ubuntu/ precise main restricteddeb-src /ubuntu/ precise main restricted## Major bug fix updates produced after the final release of the## distribution.deb /ubuntu/ precise-updates main restricteddeb-src /ubuntu/ precise-updates main restricted## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any## review or updates from the Ubuntu security team.deb /ubuntu/ precise universedeb-src /ubuntu/ precise universedeb /ubuntu/ precise-updates universedeb-src /ubuntu/ precise-updates universe## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to## your rights to use the software. Also, please note that software in## multiverse WILL NOT receive any review or updates from the Ubuntu## security team.deb /ubuntu/ precise multiversedeb-src /ubuntu/ precise multiversedeb /ubuntu/ precise-updates multiversedeb-src /ubuntu/ precise-updates multiverse## N.B. software from this repository may not have been tested as## extensively as that contained in the main release, although it includes## newer versions of some applications which may provide useful features.## Also, please note that software in backports WILL NOT receive any review## or updates from the Ubuntu security team.deb /ubuntu/ precise-backports main restricted universe multiversedeb-src /ubuntu/ precise-backports main restricted universe multiversedeb /ubuntu precise-security main restricteddeb-src /ubuntu precise-security main restricteddeb /ubuntu precise-security universedeb-src /ubuntu precise-security universedeb /ubuntu precise-security multiversedeb-src /ubuntu precise-security multiverse## Uncomment the following two lines to add software from Canonical's## 'partner' repository.## This software is not part of Ubuntu, but is offered by Canonical and the## respective vendors as a service to Ubuntu users.# deb /ubuntu precise partner# deb-src /ubuntu precise partner## This software is not part of Ubuntu, but is offered by third-party## developers who want to ship their latest software.deb /ubuntu precise maindeb-src /ubuntu precise main(4)通知ubuntu启用新的更新源sudo apt-get update3.2安装jdk 1.6(1)sudo apt-get install sun-java6-jdk(2)update-alternatives --config java,查看可选择的jdk列表,选择默认使用自己安装的jdk.3.3安装其他工具sudo apt-get install build-essentialsudo apt-get install makesudo apt-get install gccsudo apt-get install g++sudo apt-get install libc6-devsudo apt-get install flexsudo apt-get install bisonsudo apt-get install patchsudo apt-get install texinfosudo apt-get install libncurses-devsudo apt-get install git-core gnupg //(gnupg系统可能已自带)sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curlsudo apt-get install ncurses-devsudo apt-get install zlib1g-devsudo apt-get install valgrind(可选,有21M大,我觉得一般人是用不到的)sudo apt-get install python2.5 (实际上不用装,Ubuntu 8.04 已经自带)4 android源码编译4.1编译源码拷贝androidsrc源码压缩包到主文件夹中,用文件归档管理器打开,提取到主文件夹中.打开终端:cd /home/用户名/androidsrc/make注:编译过程中会碰到一些错误,在百度中搜索一些资料解决。
Android开发环境搭建图解教程(完整过程详细步骤)
Android开发环境搭建图解教程一、开发环境搭建在搭建Android开发环境之前,首先要了解Android对操作系统的要求:Android可以运行在Windows XP及以上的版本上,也可以运行在Mac OS和Linux 等操作系统上,本文以Windows XP为依托进行Android开发环境搭建的讲解。
1.安装JDK和配置Java开发环境Android应用程序开发使用Java语言,因此首先需要搭建Java程序开发运行环境,Java的开发环境称为JDK(Java Development Kit),是Sun Microsystems 针对java程序员开发的产品,自从Java推出以来,JDK已经成为最广泛的Java SDK。
JDK是整个Java的核心,包括了Java运行环境JRE(Java Runtime Environment)、Java工具和Java基础类库。
1.1 下载JDK当前最新版JDK的下载地址为:/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html图1 - 11.2 配置JDK右键点击“我的电脑”,选择“属性”→“高级”→“环境变量”→“系统变量”,找到“Path”变量名(如果没有就新建一个名为“Path”的变量),点击“编辑”按钮,添加JDK安装目录中的“bin”文件夹路径,以分号隔开,如图1-2所示,然后点击“确定”按钮完成设定。
图1 - 2再找到“CLASSPATH”变量(如果没有,以同样方法新建一个),输入JDK 安装目录中的“lib”及“demo”的路径,如图1-3所示,点击“确定”按钮完成设定。
1.3 验证JDK是否安装配置成功安装配置完成之后,需要测试JDK是否安装配置成功。
在Windows XP系统中点击“开始”→“运行”,输入“CMD”回车进入命令行模式,键入命令“java -version”,运行结果如图1-4所示,表示安装JDK安装成功(显示的版本号根据具体情况可能有所不同)。
Android开发入门教程:从零基础搭建开发环境
Android开发入门教程:从零基础搭建开发环境Android操作系统已经成为目前最受欢迎的移动操作系统之一,拥有庞大的用户群体和广阔的市场潜力。
如果你对移动开发感兴趣,那么学习Android开发将是一个不错的选择。
本文将向大家介绍如何从零基础搭建Android开发环境。
第一步:选择合适的开发工具在开始搭建Android开发环境之前,我们需要选择一个合适的开发工具。
Android Studio是官方推荐的开发环境,它提供了丰富的开发工具和插件,能够帮助我们更高效地进行开发。
此外,它还有强大的模拟器和调试功能,方便我们测试和调试应用程序。
第二步:安装Java开发工具Android应用程序的开发主要使用Java语言,因此在安装Android Studio之前,我们需要先安装Java开发工具。
我们可以从Oracle官方网站上下载Java Development Kit(JDK),选择适合自己操作系统的版本进行安装。
第三步:下载和安装Android Studio在完成Java开发工具的安装之后,我们可以去Android官方网站( Studio版本。
下载完成后,根据安装向导进行安装。
第四步:设置Android SDK和虚拟机Android Studio安装完成后,我们需要设置Android SDK和虚拟机,以便进行Android应用程序的开发和测试。
打开Android Studio 后,点击“Welcome to Android Studio”界面右下方的“Configure”按钮,进入SDK Manager界面。
在SDK Manager中,我们可以选择需要安装的Android SDK版本和软件包。
点击“Install”按钮,Android Studio会自动下载并安装所需的软件包。
除了安装Android SDK,我们还需要设置虚拟机。
AndroidStudio提供了自带的模拟器,可以模拟出各种不同的Android设备。
Android5.1-7.1系统(framework)定制、修改、移植、总结-上篇
Android5.1-7.1系统(framework)定制、修改、移植、总结-上篇Android 5.1 - 7.1 系统(framework)定制、修改、移植、总结 - 上篇转⽬录1:修改开机logo修改开机logo有两种⽅法,⼀种直接去改c语⾔代码,第⼆种替换图⽚⽤python⽣成splash。
第⼀种⽅法我没试过,感觉挺⿇烦的,还有分辨率限制,超过多少分辨率就不能⽤第⼀种⽅法。
1. 修改的⽂件路径LINUX/android/bootable/bootloader/lk/splash2. 准备好logo图⽚(png、bmp格式)3. 查看中原图⽚的分辨率,修改logo图⽚保证分辨率⼀致4. ⽣成splash.img镜像⽂件注:图⽚分辨率很重要!很重要!很重要!⽣成splash.img 步骤1.The steps to generate a splash.img:2.3.1 sudo apt-get install python-imaging4.5.2 python ./logo_gen.py boot_001.png (*.bmp)为了减少编译时间可以直接将⽣成好的splash.img将刷机包中的⽂件替换掉。
2:Framework(SysteimUI) Android在状态栏增加⽿机拔插图标Android 4.1在拔插⽿机时,状态栏没有提⽰图标。
最近做了这个新的需求,步骤如下:1、在\frameworks\base\packages\SystemUI\res\drawable-Xdpi下增加⼀个⽿机图⽚stat_sys_headset.png。
drawable-Xdpi中的X根据⼿机的分辨率来确定,我的⼿机⽤的是drawable-hdpi;2、在\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBarPolicy.java中增加下⾯的代码:1.private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {2.@Override3.public void onReceive(Context context, Intent intent) {4.String action = intent.getAction();5.if (action.equals(Intent.ACTION_ALARM_CHANGED)) {6.updateAlarm(intent);7.}8.else if (action.equals(Intent.ACTION_SYNC_STATE_CHANGED)) {9.updateSyncState(intent);10.}11.else if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED) ||12.action.equals(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED)) {13.updateBluetooth(intent);14.}15./*add code for adding headset icon in statusbar.*/16.else if (action.equals(Intent.ACTION_HEADSET_PLUG)) {17.updateHeadsetState(intent);18.}19.//endelse if (action.equals(AudioManager.RINGER_MODE_CHANGED_ACTION) ||21.action.equals(AudioManager.VIBRATE_SETTING_CHANGED_ACTION)) {22.updateVolume();23.}24.else if (action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {25.updateSimState(intent);26.}27.else if (action.equals(TtyIntent.TTY_ENABLED_CHANGE_ACTION)) {28.updateTTY(intent);29.} else if (action.equals(Intent.ACTION_LOCALE_CHANGED)) {30.31.// when acceptting the locale change event,reload USB connection notification.32.boolean isUsbConnected = mStorageManager.isUsbMassStorageConnected();33.mStorageNotification.onUsbMassStorageConnectionChanged(isUsbConnected);34.}35.}36.};37.38.public PhoneStatusBarPolicy(Context context) {39.mContext = context;40.41.// init StorageNotification object42.mStorageNotification = new StorageNotification(mContext);43.mService = (StatusBarManager)context.getSystemService(Context.STATUS_BAR_SERVICE);44.45.// listen for broadcasts46.IntentFilter filter = new IntentFilter();47.filter.addAction(Intent.ACTION_ALARM_CHANGED);48.filter.addAction(Intent.ACTION_SYNC_STATE_CHANGED);49.filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);50.filter.addAction(AudioManager.VIBRATE_SETTING_CHANGED_ACTION);51.filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);52.filter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED);53./*add code for adding headset icon in statusbar.*/54.filter.addAction(Intent.ACTION_HEADSET_PLUG);55.//end56.filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);57.filter.addAction(TtyIntent.TTY_ENABLED_CHANGE_ACTION);58.59.// add locale change event filter60.filter.addAction(Intent.ACTION_LOCALE_CHANGED);61.mContext.registerReceiver(mIntentReceiver, filter, null, mHandler);62.63.int numPhones = MSimTelephonyManager.getDefault().getPhoneCount();64.mSimState = new IccCard.State[numPhones];65.for (int i=0; i < numPhones; i++) {66.mSimState[i] = IccCard.State.READY;67.}68.// storage69.mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);70.mStorageManager.registerListener(mStorageNotification);71.72.// TTY status73.mService.setIcon("tty", R.drawable.stat_sys_tty_mode, 0, null);74.mService.setIconVisibility("tty", false);75.76.// Cdma Roaming Indicator, ERI77.mService.setIcon("cdma_eri", R.drawable.stat_sys_roaming_cdma_0, 0, null);78.mService.setIconVisibility("cdma_eri", false);79.80.// bluetooth status81.BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();82.int bluetoothIcon = R.drawable.stat_sys_data_bluetooth;83.if (adapter != null) {84.mBluetoothEnabled = (adapter.getState() == BluetoothAdapter.STATE_ON);85.if (adapter.getConnectionState() == BluetoothAdapter.STATE_CONNECTED) {86.bluetoothIcon = R.drawable.stat_sys_data_bluetooth_connected;87.}88.}89.mService.setIcon("bluetooth", bluetoothIcon, 0, null);90.mService.setIconVisibility("bluetooth", mBluetoothEnabled);91.92./*add code for adding headset icon in statusbar.*/93.mService.setIcon("headset", R.drawable.stat_sys_headset, 0, null);94.mService.setIconVisibility("headset", false);95.//end96.97.// Alarm clock98.mService.setIcon("alarm_clock", R.drawable.stat_sys_alarm, 0, null);99.mService.setIconVisibility("alarm_clock", false);100.101.// Sync state102.mService.setIcon("sync_active", R.drawable.stat_sys_sync, 0, null);103.mService.setIcon("sync_failing", R.drawable.stat_sys_sync_error, 0, null);104.mService.setIconVisibility("sync_active", false);105.mService.setIconVisibility("sync_failing", false);106.107.// volume108.mService.setIcon("volume", R.drawable.stat_sys_ringer_silent, 0, null);109.mService.setIconVisibility("volume", false);110.updateVolume();111.}112.113.114./*add code for adding headset icon in statusbar.*/115.private final void updateHeadsetState(Intent intent) {116.boolean mIsHeadsetOn = (intent.getIntExtra("state", 0) == 1);117.Slog.v(TAG, "updateHeadsetState: HeadsetState: " + mIsHeadsetOn);118.119.mService.setIconVisibility("headset", mIsHeadsetOn);120.}在\frameworks\base\core\res\res\values\config.xml中加⼊⽿机图标控制字段(headset):1.<string-array name="config_statusBarIcons">2.<item><xliff:g id="id">ime</xliff:g></item>3.<item><xliff:g id="id">sync_failing</xliff:g></item>4.<item><xliff:g id="id">sync_active</xliff:g></item>5.<item><xliff:g id="id">gps</xliff:g></item>6.<item><xliff:g id="id">bluetooth</xliff:g></item>7.<item><xliff:g id="id">nfc</xliff:g></item>8.<item><xliff:g id="id">tty</xliff:g></item>9.<item><xliff:g id="id">speakerphone</xliff:g></item>10.<item><xliff:g id="id">mute</xliff:g></item>11.<item><xliff:g id="id">volume</xliff:g></item>12.<item><xliff:g id="id">wifi</xliff:g></item>13.<item><xliff:g id="id">cdma_eri</xliff:g></item>14.<item><xliff:g id="id">phone_signal_second_sub</xliff:g></item>15.<item><xliff:g id="id">data_connection</xliff:g></item>16.<item><xliff:g id="id">phone_evdo_signal</xliff:g></item>17.<item><xliff:g id="id">phone_signal</xliff:g></item>18.<item><xliff:g id="id">battery</xliff:g></item>19.<item><xliff:g id="id">alarm_clock</xliff:g></item>20.<item><xliff:g id="id">secure</xliff:g></item>21.<item><xliff:g id="id">clock</xliff:g></item>22.<item><xliff:g id="id">headset</xliff:g></item>23.24.</string-array>因为所加代码中的 mService.setIcon和mService.setIconVisibility最终会调⽤到StatusBarManagerService,它的构造函数有mIcons.defineSlots(res.getStringArray(com.android.internal.R.array.config_statusBarIcons));语句,找到config_statusBarIcons所在的配置⽂件为config.xml。
在ubuntu16.04上编译安卓5.1的过程
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev sudo apt-get install git-core gnupg flex bison gperf build-essential sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib sudo apt-get install libc6-dev-i386 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev sudo apt-get install lib32z-dev ccache sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4 注:Ubuntu 版本不同,依赖的软件也不一样。
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-4.7 g++-4.7 g++-4.7-multilib gcc-4.7-multilib
2)Ubuntu16.04 环境下,推荐安装 make-3.8 版本
2)设置 JDK 环境变量
sudo gedit /etc/profile 在文件末尾加上: Export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ Export JRE_HOME=${JAVA_HOME}/jre Export CLASSPATH=.:${JAVA_HOME}/lib:{JRE_HOME}/lib Export PATH=${JAVA_HOME}/bin:$PATH 修改了/etc/profile 文件需要重启才能生效
快速搭建Android系统源码编译环境
快速搭建Android系统源码编译环境一、编译服务器配置建议采用ubuntu12.04的64位桌面版(desktop)操作系统,单用户单个编译要求内存4G以上,硬盘50G以上。
安装编译环境需要能连接网络,有系统的权限(sudo命令需要输入密码)。
注意:最好先执行更新ubuntu源,然后执行后续的操作。
二、android系统源码编译环境的搭建1.软件包安装安装软件包,需要连接好网络,在命令终端输入: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 lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc2.JDK的安装JDK要求安装sun-java6-jdk,主要是要找到可以用的源。
不推荐手动配置,手动配置容易导致不能进入系统。
安装JDK可以找到可用的源使用apt-get安装。
1). 在命令终端中输入sudo gedit /etc/apt/sources.list然后在sources.list末尾加上如下行:###for install Java6deb /ferramroberto/java/ubuntu natty main2). sudo apt-get update更新索引时候提示:W: GPG 错误: natty Release: 由于没有公钥,无法验证下列签名:NO_PUBKEY B725097B3ACC39653). 下载安装keysudo apt-key adv --recv-key --keyserver B725097B3ACC39654). sudo apt-get update5). sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-plugin ( 你也许还要:sudo apt-get install sun-java6-demo sun-java6-source)注意:在安装的过程中,会弹出个对话框来,用Tab键,选中OK,然后enter键,在弹出的对话框中,按左键选中yes,然后enter键,继续安装。
android 编译流程
android 编译流程Android编译流程Android编译流程是将开发人员编写的源代码转换为可在Android 设备上运行的可执行文件的过程。
本文将介绍Android编译流程的主要步骤和各个阶段的工作原理。
一、源代码准备阶段在编译之前,开发人员需要准备好Android应用程序的源代码。
通常,Android应用程序的源代码以Java编写,开发人员可以使用Android Studio等集成开发环境进行编码和调试。
二、构建系统Android构建系统是整个编译流程的核心部分,它负责处理源代码的编译、资源文件的处理和打包等工作。
Android构建系统使用Gradle作为构建工具,它可以自动化执行编译、依赖管理和打包等任务。
1. 生成R.java文件在编译过程中,构建系统会根据项目中的资源文件(如布局文件、图片等)生成对应的R.java文件,该文件包含了资源文件的引用和ID等信息。
2. 编译源代码构建系统将Java源代码编译为字节码文件(.class文件),并将其转换为Android虚拟机(Dalvik虚拟机或ART虚拟机)可以理解的.dex文件。
3. 处理资源文件构建系统会对项目中的资源文件进行处理,包括压缩、优化和打包等操作。
资源文件包括布局文件、图片、字符串等。
4. 构建APK构建系统会将编译后的字节码文件和处理后的资源文件打包成Android应用程序的安装包(APK文件)。
APK文件是Android应用程序的可执行文件,可以在Android设备上安装和运行。
三、签名和打包在构建完成后,开发人员需要对APK文件进行签名和打包。
APK签名是为了验证APK文件的完整性和来源,以确保安装的应用程序是可信的。
APK打包是将签名后的APK文件进行压缩和优化,以减少文件大小并提高应用程序的性能。
1. 生成密钥库开发人员需要生成一个密钥库(Keystore)文件,用于存储应用程序的数字证书和私钥。
密钥库文件是用来对APK文件进行签名的重要文件。
快速搭建android5.1系统源码编译环境
1.安装ubuntu编译Android 5.1需要ubuntu 64位的操作系统,在百度上搜索ubuntu,到ubuntu官网下载Ubuntu 64位桌面(desktop)版本,进行安装。
安装完成后,需要更新一下ubuntu源。
Android5.1系统源码编译的磁盘空间要求较高,ubuntu 的磁盘空间需要分配60G以上,内存需要4G以上,否则容易出现编译错误等问题。
2.安装openjdk-7-jdkAndroid 5.1 用到的jdk不再是Oracle 的jdk ,而是开源的openjdk,在ubuntu安装好后,使用如下命令安装jdk:$sudo apt-get install openjdk-7-jdk安装好后,设置环境变量:$sudo gedit /etc/profile在profile文件末尾加上:JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/PATH=$PATH:$HOME/bin:$JAVA_HOME/binexport JAVA_HOMEexport PATH3.安装编译依赖的软件使用如下命令安装依赖软件: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 lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc4.配置Cache使用如下命令配置cache:$sudo apt-get install ccache$source ~/.bashrc5.编译android系统源码1,初始化编译环境$. build/envsetup.sh2,选择编译目标包ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的$lunch full-eng3,编译$makeps: 1.make后面可以跟参数:如你的机器是四核四线程,可以使用make -j4,这样速度更快,但编译时使用的内存更多。
用Eclipse环境调试Android源码工程环境搭建.
用 Eclipse 调试 Android 源码工程环境搭建本文主要介绍用 Eclipse 调试 Android 源码工程的环境搭建步骤。
一、将 android 源码工程导入 Eclipse 环境1, 导入 android 源码编码规范文件依次点选 Eclipse — Window — Preferences — java — Code Style— Formatter ,导入 android-formatting.xml依次点选 Eclipse — Window — Preferences — java — Code Style— Organize Imports,导入 android.importorder以上两个文件在 Android 源码工程 development/ide/eclipse/下, 其目的是使导入Eclipse 环境的 Android 源码的代码风格保持不变。
2, 配置 android 工程的 classpath将“ 需要的文件”目录中的 .classpath 放置在 Android 工程源码的根目录下即可。
3, 新建 Java 工程,导入 Android 工程源码注意点:(1新建工程的类型须选为 Java ,不可选为 Android 。
因为默认新建的 Android 工程是单个工程,有特定的默认工程目录结构,如 res/ src/ raw/等。
(2若 Android 工程在本地磁盘,可以直接选择工程路径导入。
若 Android 工程在服务器上,可以通过 samba 映射到本地。
但需注意,必须有对该 samba 工程目录的写权限,否则不能成功导入,因新建的 Eclipse 工程,会在工程目录下生成相应的文件。
映射 samba 服务器到本地的方法见下图 1、 2、 3所示。
图 1 映射 samba 服务器到本地图 2映射 samba 服务器到本地图 3映射 samba 服务器到本地4,处理错误导入的 Android 源码一般都不会报错。
Android源码编译环境的搭建
Android源码编译环境的搭建1. 下载Android源码 + ubuntu9.10 --源码的下载和ubuntu的安装⽹上介绍很多,这⾥就不多讲解了2. 安装编译组件a. sudo apt-get install bisonb. sudo apt-get install vimc. 解决:安装JDK 5.01):根据官⽅⽂档⾥所说,源代码的编译必须使⽤JDK5才能编译的了,所以这⾥我们使⽤jdk5 2): 需要先更新源,在终端⾥执⾏ sudo vim /etc/apt/sources.list3): 在source.list⾥把以下2⾏拷贝到⽂档最后⾯:deb jaunty multiversedeb jaunty-updates multiverse保存退出。
4): 执⾏ sudo apt-get update 更新源.5): 配置编译环境并下载JDK5:sudo apt-get install sun-java5-jdkd. sudo apt-get install build-essentiale. sudo apt-get install zlib1g-devf. sudo apt-get install flexg. sudo apt-get install libncurses-devh. sudo apt-get install libx11-devi. sudo apt-get install gperf3. 设置环境变量vi ~/.bashrc#java 程序开发/运⾏的⼀些环境变量JAVA_HOME=/usr/lib/jvm/java-1.5.0-sunJRE_HOME=${JAVA_HOME}/jreexport ANDROID_JAVA_HOME=$JAVA_HOMEexport CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport JAVA_HOME;export JRE_HOME;export CLASSPATH;HOME_BIN=~/bin/export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};#java 程序开发/运⾏的⼀些环境变量export ANDROID_PRODUCT_OUT=$androiddir/out/target/product/genericANDROID_PRODUCT_OUT_BIN=$androiddir/out/host/linux-x86/binexport PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};保存退出,然后执⾏source ~/.bashrc同步源注意$androiddir是你android源码的⽬录4. 编译源码在源码⼯程⽬录Make,耐性等待5. 启动等待源码编译成功后,在源码⽬录执⾏下⾯的命令,初始化环境变量. build/envsetup.sh //注意输完envsetup.sh后需要按Tab下执⾏ emulator & ,如果正确弹出模拟器窗⼝,恭喜你,成功了!。
android开发环境搭建内核编译
android开发环境搭建,内核编译搞了三天,终于把这个环境搞出来,一个人摸索,在网上查资料,终于搞定了。
但是模拟器跑起来真是慢。
PS:/sdk/installing.htmlhttps:///GNUToolchain/home本机环境:[root@bruce test013]# uname -aLinux bruce 2.6.32-71.el6.i686 #1 SMP Wed Sep 101:26:34 EDT 2010 i686 i686 i386 GNU/Linux一、jdk的安装官网下载安装文件,解压,然后配置环境变量:# gedit /etc/profile,会弹出一个窗口,为profile文件的编辑窗口,在该文件的最后添加:#set java environmentexport JAVA_HOME=/home/bruce/tools/jdk1.7.0_01export JRE_HOME=/home/bruce/tools/jdk1.7.0_01/jreexportCLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLAS SPATHexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH上面的路径,请根据自己的机器进行修改# source /proc/profile测试:[root@bruce test013]# java -versionjava version "1.7.0_01"Java(TM) SE Runtime Environment (build 1.7.0_01-b08) Java HotSpot(TM) Server VM (build 21.1-b02, mixed mode)安装完成。
二,交叉编译器(如果不需要编译内核的,可以不要安装)https:///GNUToolchain/subscription? @template=request_eval&customer=24203申请个免费的账号,可以下载,其中第一项选择ARM EABI 或ARM GNU/Linux,第二项选择IA32 GNU/Linux即可。
搭建Android源码编译环境
Android 2.3.1 的源代码并在 Ubuntu 10.04(32 位)上编译通过。
这篇文章简 要记录了下载、编译的过程。
关于搭建 Android 开发环境的文章已经有很多,本文只简要介绍一下,做为备 忘。
[ 编译前的准备 ] 这一步安装获取源代码以及编译所需要的软件,使用如下命令:$ sudo aptitude install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 另外,参考别人编译 Android 2.3 的经验,安装了下列软件包:$ sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6 虽然 Android 官方网站上讲不支持 Java 6,不过我使用 Java 6 也可以编译通 过,所以在这里 Easwy 安装的是 Java 6。
首先去掉/etc/apt/sources.list 中 这两行的注释,使能 Java 6 源:deb /ubuntu lucid partner deb-src /ubuntu lucid partner 然后安装 Java 6 JDK:$ sudo aptitude install sun-java6-jdk1接下来下载 repo 工具,这是 Google 提供的一个 Python 脚本,方便管理多个 Git 版本库:$ cd ~ $ mkdir bin $ curl /repo >~/bin/repo $ chmod a+x ~/bin/repo 记得把 repo 加到你的路径中, 方便以后使用。
编辑~/.bashrc, 加入下面一行:PATH=$PATH:~/bin export PATH 然后用命令. ~/.bashrc,以后就可以直接使用 repo 命令了。
Android系统开发编译及系统移植
Android系统开发编译环境配置主机系统:Ubuntu9.04(1)安装如下软件包sudo apt-get install git-coresudo apt-get install gnupgsudo apt-get install sun-java5-jdksudo apt-get install flexsudo apt-get install bisonsudo apt-get install gperfsudo apt-get install libsdl-devsudo apt-get install libesd0-devsudo apt-get install build-essentialsudo apt-get install zipsudo apt-get install curlsudo apt-get install libncurses5-devsudo apt-get install zlib1g-devandroid编译对java的需求只支持jdk5.0低版本,jdk5.0 update 12版本和java 6不支持。
(2)下载repo工具curl /repo >/bin/repochmod a+x /bin/repo(3)创建源代码下载目录:mkdir /work/android-froyo-r2(4)用repo工具初始化一个版本(以android2.2r2为例)cd /work/android-froyo-r2repo init -u git:///platform/manifest.git -b froyo初始化过程中会显示相关的版本的TAG信息,同时会提示你输入用户名和邮箱地址,以上面的方式初始化的是android2.2 froyo的最新版本,android2.2本身也会有很多个版本,这可以从TAG信息中看出来,当前froyo的所有版本如下:* [new tag] android-2.2.1_r1 -> android-2.2.1_r1* [new tag] android-2.2_r1 -> android-2.2_r1* [new tag] android-2.2_r1.1 -> android-2.2_r1.1* [new tag] android-2.2_r1.2 -> android-2.2_r1.2* [new tag] android-2.2_r1.3 -> android-2.2_r1.3* [new tag] android-cts-2.2_r1 -> android-cts-2.2_r1* [new tag] android-cts-2.2_r2 -> android-cts-2.2_r2* [new tag] android-cts-2.2_r3 -> android-cts-2.2_r3这样每次下载的都是最新的版本,当然我们也可以根据TAG信息下载某一特定的版本如下:repo init -u git:///platform/manifest.git -b android-cts-2.2_r3(5)下载代码repo syncfroyo版本的代码大小超过2G,漫长的下载过程。
Android编译环境的配置
Android在ubuntu10.04编译环境的配置一.软件的安装1.Linux系统是安装在Vmware中,所以必须下载Vmware,这里采用的版本为Vmware.Workstation.v7.1.0.Lite.rar下载地址:(暂时没有找到)安装完vmware后,可以让它自动检测新版本并升级。
2.下载Ubuntu,这里采用的版本是10.04,文件名为ubuntu-10.04-desktop-i386.iso下载地址为:http:3.下载完成后,安装ubuntu10.04,由于采用vmware安装,故只需简单设置即可,其他采用默认设置安装,需要注意的是vmware的空间应该分配大一些(最好是大于60GB),不然,以后要扩展空间时比较麻烦。
4.Ubuntu的默认安装的用户不是超级用户root,因此要使用超级用户root,必须通过下面的命令来开启:(1).使用默认用户进入ubuntu的界面,打开shell,(2).在shellxx输入命令:sudo passwd root ,然后按确认键;(3).按下确认键后,系统要求你设置root用户的密码,连续输入2次后,root用户的密码设置成功;(4).重新启动系统即可使用超级用户登陆.5.使用超级用户登陆后,开始配置Android的编译环境:(1).由于ubuntu的软件中心提供的是java6,而编译Android需要的是java5,为了保证采用命令安装时系统能够自动找到需要的java5,我们必须修改apt里面的sources.list:root@ubuntu:/#vim /etc/apt/sources.list在该文件末添加如下网址:# update the sun-java5-jdk from as follow:deb http:deb http:(2).采用命令安装所需软件:root@ubuntu:/# sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperflibsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-devzlib1g-dev(由于apt-get能够自动区分命令,故采用一条命令即可.此命令安装的软件有:git-core ;gnupg ;sun-java5-jdk ;flex ;bison;gperf ;libsdl1.2-dev;libesd0-dev;libwxgtk2.6-dev;build-essential;zip;curl ;libncurses5-dev ;zlib1g-dev;当安装到sun-java5-jdk时,需要手动点击协议。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.安装ubuntu
编译Android 5.1需要ubuntu 64位的操作系统,在百度上搜索ubuntu,到ubuntu官网下载Ubuntu 64位桌面(desktop)版本,进行安装。
安装完成后,需要更新一下ubuntu源。
Android5.1系统源码编译的磁盘空间要求较高,ubuntu 的磁盘空间需要分配60G以上,内存需要4G以上,否则容易出现编译错误等问题。
2.安装openjdk-7-jdk
Android 5.1 用到的jdk不再是Oracle 的jdk ,而是开源的openjdk,在ubuntu安装好后,使用如下命令安装jdk:
$sudo apt-get install openjdk-7-jdk
安装好后,设置环境变量:$sudo gedit /etc/profile
在profile文件末尾加上:
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
3.安装编译依赖的软件
使用如下命令安装依赖软件:
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 lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
4.配置Cache
使用如下命令配置cache:
$sudo apt-get install ccache
$source ~/.bashrc
5.编译android系统源码
1,初始化编译环境
$. build/envsetup.sh
2,选择编译目标包
ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的
$lunch full-eng
3,编译
$make
ps: 1.make后面可以跟参数:如你的机器是四核四线程,可以使用make -j4,这样速度更快,但编译时使用的内存更多。
2.make失败或停止后,可以使用make -k 继续编译。
然后就是漫长的等待了。
4,运行android模拟器
在终端输入命令:
$emulator。