云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Ubuntu下Android源码修改、编译及运行、launcher定制

Ubuntu下Android源码修改、编译及运行、launcher定制

  • 62 次阅读
  • 3 次下载
  • 2025/5/25 7:12:03

环境

Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统 GCC版本:gcc version 4.5.2

Java版本:java version \

下载android源码前注意: 1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。 2、保证Ubuntu系统进行Internet访问。

联网方法:采用拨号进行连接。相关操作步骤如下所示:

1、虚拟机?设置?硬件?网络适配器?网络连接?桥接 2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下:

$ pppoeconf //打开后输入上网账号跟密码,确认保存 $ sudo pon dsl-provider //上网连接命令

经过这两个步骤后就可以进行上网了。

Android源码编译所依赖的tools 01.$ sudo apt-get update

02.$ sudo apt-get -y install git-core 03.$ sudo apt-get -y install gnupg

04.$ sudo apt-get -y install sun-java6-jdk flex 05.$ sudo apt-get -y install bison 06.$ sudo apt-get -y install gperf 07.$ sudo apt-get -y install libsdl-dev 08.$ sudo apt-get -y install libesd0-dev 09.$ sudo apt-get -y install libwxgtk2.6-dev 10.$ sudo apt-get -y install build-essential 11.$ sudo apt-get -y install zip 12.$ sudo apt-get -y install curl

13.$ sudo apt-get -y install libncurses5-dev 14.$ sudo apt-get -y install zlib1g-dev 15.$ sudo apt-get -y install valgrind

注意:(如果是32bit的系统的话,则要更改几个Android.mk文件) 01./external/clearsilver/cgi/Android.mk 02./external/clearsilver/java-jni/Android.mk 03./external/clearsilver/util/Android.mk 04./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) –fpermissive

Error2:

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=0

Android源码下载 1、安装repo

安装过程步骤如下所示: Repo下载安装 1、$ mkdir ~/bin //在home目录下创建bin文件夹 2、$ PATH=~/bin:$PATH //环境变量设置 3、$ curl https://dl-ssl.google.com/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://android.googlesource.com/platform/manifest //指定URL清单,指定包含在Android源代码的各种存储库将被安置在工作目录中

当然也可以指定android版本,使用如下命令:

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 Android源码文件获取 $ repo sync

注意:在Android源码下载过程中凡出现问题,可以进入Android源码下载的相关官方网站http://source.android.com/source/downloading.html 进行查看。

Android源码编译 环境初始化

1、$ source build/envsetup.sh OR $ . build/envsetup.sh 2、$ lunch full-eng //选择编译目标 Code编译 $ make -j4 //其中j4表示同时启动4个线程任务进行编译,可以直接使用make,这样就是最大程度使用线程数来进行编译

总结:到这里为止,android源码完成了编译过程,编译后,会在源码目录下的/out/target/product/generic/有三个镜像文件生成,分别是system.img、userdata.img以及ramdisk.img 。

注意:1、如果编译过程没有出问题,但是在/out/target/product/generic/下3个镜像文件不全,可以再次进行一次命令make,就可以解决问题了。 2、如果是编译过程中出现错误,一般导致的原因是因为缺少了相关编译环境,可以根据提示进行安装,安装后,重新进行编译。

Windows XP下使用Android模拟器运行所编译好的文件。 原理:将Android模拟器下所加载的system.img替换成编译后的system.img即可。

1、 将编译好的system.img从Ubuntu中拷贝出来

方法:1)先拷贝到U盘或者移动硬盘中,再从U盘或移动硬盘拷贝到Windows XP硬盘下; 2)先进行Windows XP跟Ubuntu文件夹共享,这样就可以将system.img拷贝到共享文件夹中; 3)传FTP,从FTP上进行下载; 4)在Ubuntu中上网将system.img作为附件进行邮件发送,然后从Windows XP下进行下载。

2、 将拷贝出来的system.img文件放置到Android模拟器下的对于文件夹中,如果

Android是4.0以上的版本的话,一般是在system-imges文件夹中。C:\\Program Files\\Android\\android-sdk\\system-images\\android-15\\armeabi-v7a 3、 启动模拟器就可以运行了。

注意:创建Android虚拟机的时候,Android版本应该跟Ubuntu下编译好的Android版本要保持一致,否则有可能替换system.img后,Android系统无法正常启动,或者无法进入Android启动界面。

Android源码修改并进行编译 下面以2个实例来进行说明,实例1目的是实现Android系统永不休眠,实例2是实现Android系统启动后,不自动进入锁屏界面。 实例1: 实现Android系统永不休眠其实很简单,只需要对源码下的配置文件XML下的参数进行修改即可。步骤如下: 1、$ cd frameworks/base/packages/SettingsProvider/res/values //在下载的Android源码目录下输入此命令,进入到values目录下

2、$ gedit defaults.xml //使用文本编辑器打开defaults.xml文件 3、将

到这里,模拟编译就完成了,查看效果的话,直接将Android模拟器下的system.img替换掉启动运行即可。

注意:mmm命令可以对模块进行编译,后面必须接上模块所在目录,查看某目录是否为一模块,就看当前目录下是否有Android.mk文件,如果有的话,就是模块。除了可以使用mmm进行编译的话,还可以使用mm,但是mm是在当前目录下实行编译的,也就是模块目录下使用此命令。 实例2: 实现Android启动后不进入锁屏状态。修改KeyguardViewMediator.java文件下的变量,将其赋值改为false即可。步骤如下: 1、$ cd frameworks/base/policy/src/com/android/internal/policy/impl/ //在下载的Android源码目录下输入此命令,进入到impl目录下 2、$ gedit KeyguardViewMediator.java //是用文本编辑器打开java文件 3、将private boolean mExternallyEnabled = true;代码中的true改为false,保存退出 4、$ cd ../../../../../../ ../../../ //返回到源码目录下

5、$ source ./build/envsetup.sh //环境初始化 6、$ mmm frameworks/base/policy/ //对policy模块进行编译

7、$ make snod //重新打包system.img

注意:如果在进行模块代码编译了,报出少了一个odex后缀名的文件的错误时,总结了下,导致报错的原因可能是Android版本的差异,不过没事,即使模块编译通不过,还是可以对整个源码进行编译的(直接在源码目录下执行make命令即可),只是时间会相对较长,同样会将修改的模块整合到system.img文件中。

Android 4.0下防止用户对安装程序进行卸载

打开源码目录找到packages/apps/PackageInstaller/src/com/android/packageinstaller/下的两个文件:

1、UninstallAppProgress.Java //程序卸载过程 2、UninstallerActivity.java //程序卸载界面

方法是在UninstallerActivity.java对应位置加上一段代码即可: @Override

public void onCreate(Bundle icicle) { super.onCreate(icicle);

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

环境 Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统 GCC版本:gcc version 4.5.2 Java版本:java version \ 下载android源码前注意: 1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。 2、保证Ubuntu系统进行Internet访问。 联网方法:采用拨号进行连接。相关操作步骤如下所示: 1、虚拟机?设置?硬件?网络适配器?网络连接?桥接 2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下: $ pppoeconf //打开后输入上网账号跟密码,确认保存 $ sudo pon dsl-provider //上网连接命令 <

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com