您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > Android系统编译移植技术
Android系统开发编译环境配置主机系统:Ubuntu9.04(1)安装如下软件包sudoapt-getinstallgit-coresudoapt-getinstallgnupgsudoapt-getinstallsun-java5-jdksudoapt-getinstallflexsudoapt-getinstallbisonsudoapt-getinstallgperfsudoapt-getinstalllibsdl-devsudoapt-getinstalllibesd0-devsudoapt-getinstallbuild-essentialsudoapt-getinstallzipsudoapt-getinstallcurlsudoapt-getinstalllibncurses5-devsudoapt-getinstallzlib1g-devandroid编译对java的需求只支持jdk5.0低版本,jdk5.0update12版本和java6不支持。(2)下载repo工具curl(3)创建源代码下载目录:mkdir/work/android-froyo-r2(4)用repo工具初始化一个版本(以android2.2r2为例)cd/work/android-froyo-r2repoinit-ugit://android.git.kernel.org/platform/manifest.git-bfroyo初始化过程中会显示相关的版本的TAG信息,同时会提示你输入用户名和邮箱地址,以上面的方式初始化的是android2.2froyo的最新版本,android2.2本身也会有很多个版本,这可以从TAG信息中看出来,当前froyo的所有版本如下:*[newtag]android-2.2.1_r1-android-2.2.1_r1*[newtag]android-2.2_r1-android-2.2_r1*[newtag]android-2.2_r1.1-android-2.2_r1.1*[newtag]android-2.2_r1.2-android-2.2_r1.2*[newtag]android-2.2_r1.3-android-2.2_r1.3*[newtag]android-cts-2.2_r1-android-cts-2.2_r1*[newtag]android-cts-2.2_r2-android-cts-2.2_r2*[newtag]android-cts-2.2_r3-android-cts-2.2_r3这样每次下载的都是最新的版本,当然我们也可以根据TAG信息下载某一特定的版本如下:repoinit-ugit://android.git.kernel.org/platform/manifest.git-bandroid-cts-2.2_r3(5)下载代码reposyncfroyo版本的代码大小超过2G,漫长的下载过程。(6)编译代码cd/work/android-froyo-r2makeUbuntu下使用Simba服务实现局域网内文件共享Ubuntu下安装Simba服务器将linux电脑上的内容共享,同一局域网内的另外一台WindowsPC即可访问其共享内容,从而实现Windows电脑向访问本地文件一样访问Linux文件系统的内容。(1)安装Simaba服务器sudoapt-getinstallsamba(2)安装samba图形化配置软件sudoapt-getinstallsystem-config-samba(3)创建一个Simba专用用户从“系统”—“系统管理”—“用户和组”,来创建。如图,先点击“解锁”,然后“添加新用户”然后输入新用户名字(如Simba)和密码(如111111),然后在“高级”里面,选择“主组”为sambashare后点击确定即可一句话来概括,就是创建一个主组为sambashare的用户(4)配置samba共享从“系统”—“系统管理—”samba“,运行配置界面然后”首选项“—”服务器设置“。点击:安全性,在最后的”来宾帐号“里面,选择我们新建立的那个用户simba后点击确定(5)修改samba配置文件打开/etc/samba/smb.conf,修改validusers=XXXX为validusers=simba(6)重启samba服务sudo/etc/init.d/sambarestart(7)添加共享文件从“系统”—“系统管理—”samba“,运行配置界面点击添加来添加共享文件夹,点击浏览来选择需要共享的文件夹,选择可擦写和显示,点击访问可以设置访问权限,最好设置成允许所有用户访问Ubuntu下tftp服务器的创建实验平台:Ubuntu9.04(1)安装tftp服务sudoapt-getinstalltftptftpdopenbsd-inetd(2)在根目录下创建文件夹tftpboot文件夹并修改权限cd/sudomkdirtftpbootsudochmod777tftpboot(3)修改/etc/inetd.conf文件如下:tftpdgramudpwaitnobody/usr/sbin/tcpd/usr/sbin/in.tftpd/tftpboot(4)开启tftp服务sudo/etc/init.d/openbsd-inetdreloadsudoin.tftpd-l/tftpboot(5)重启电脑,然后将测试文件放入/tftpboot目录下即可开始测试,出现问题可能一般都是权限问题/tftpboot目录下的文件访问权限改成0777创建一个新的Android产品项目从google网站上下载的android源代码编译时默认是编译google设定的产品,如果要开发自己的产品,则需要重新定义一个产品项目,过程如下:首先我们定义产品的规格,举例如下:公司名称ardent产品名称MTP主板名称merlin然后安装下面的步骤新建产品项目:(1)在源代码目录下创建一个用户目录mkdirvendor(2)在用户目录下创建一个公司目录mkdirvendor/merlin(3)在公司目录下创建一个products目录mkdirvendor/merlin/products(4)在上面创建的products下创建一个产品makefile文件MTP.mk,内容如下:PRODUCT_PACKAGES:=\AlarmClock\Email\Fallback\Launcher2\Music\Camera\Settings\LatinIME\NotePad\SoundRecorder\Bluetooth\CertInstaller\DeskClock$(callinherit-product,$(SRC_TARGET_DIR)/product/core.mk)##OverridesPRODUCT_MANUFACTURER:=ardentPRODUCT_BRAND:=ardentPRODUCT_NAME:=MTPPRODUCT_MODEL:=MultiMediaTouchPhonePRODUCT_DEVICE:=merlinPRODUCT_LOCALES:=zh_CN产品makefile文件的编写有一套规则,详细情况见此文后面的补充内容。(5)在vendor/merlin/products目录下创建一个AndroidProducts.mk文件,定义Android产品配置文件的路径,具体如下:PRODUCT_MAKEFILES:=\$(LOCAL_DIR)/MTP.mk(6)在公司目录下创建一个主板目录mkdirvendor/ardent/merlin(7)在主板目录下新建一个主板配置文件BoardConfig.mk,内容如下:TARGET_NO_BOOTLOADER:=trueTARGET_NO_KERNEL:=trueTARGET_CPU_ABI:=armeabiBOARD_USES_GENERIC_AUDIO:=trueUSE_CAMERA_STUB:=true(8)如果你希望修改系统属性,则可以在主板目录下新建一个system.prop文件,该文件中可以修改系统属性,举例如下:#system.propfor#Thisoverridessettingsintheproducts/generic/system.propfile##rild.libpath=/system/lib/libreference-ril.so#rild.libargs=-d/dev/ttyS0(9)在主板目录下建议一个Android的主板配置文件AndroidBoard.mk,此文件是编译系统接口文件,内容如下:#makefilefornewhardwarefrom#LOCAL_PATH:=$(callmy-dir)##thisisheretousethepre-builtkernelifeq($(TARGET_PREBUILT_KERNEL),)TARGET_PREBUILT_KERNEL:=$(LOCAL_PATH)/kernelendiffile:=$(INSTALLED_KERNEL_TARGET)ALL_PREBUILT+=$(file)$(file):$(TARGET_PREBUILT_KERNEL)|$(ACP)$(transform-prebuilt-to-target)##nobootloader,sowedon'tneedanyofthatstuff..#LOCAL_PATH:=vendor/ardent/merlininclude$(CLEAR_VARS)##includemoreboardspecificstuffhere?SuchasAudioparameters.#(10)编译新的项目.build/envsetup.shmakePRODUCT-MTP-user补充内容:(1)上面的新建的几个文件的编写可以参考build/target/board/generic目录下的AndroidBoard.mk,BoardConfig.mk和system.prop(2)产品makefile的编写规则,变量定义解释如下:PRODUCT_NAME终端用户可见的产品名称,对应到“Settings“中的“Aboutthephone”信息PRODUCT_MODELEnd-user-visiblenamefortheendproductPRODUCT_LOCALES1个以空格分隔开的两个字母的语言码加上2字节的国家码的列表,影响到Settings中的语言,时间,日期和货币格式设置,举例:en_GBde_DEes_ESfr_CAPRODUCT_PACKAGES需要安装的APK应用程序列表PRODUCT_DEVICE工作设计名称,即主板名称PRODUCT_MANUFACTURER生产厂家PRODUCT_BRAND软件设计针对的客户品牌PRODUCT_PROPERTY_OVERRIDES以key=value为格式的属性列表PRODUCT_COPY_FILES文件复制列表,格式为“原文件路径:目的文件路径”,编译过程中会按照此规则复制文件PRODUCT_OTA_PUBLIC_KEYS产品的OTA公共密匙列表PRODUCT_POLICY声明此产品使用的政策PRODUCT_PACKAGE_OVERLAYS指示是否使用默认资源或添加任何产品特定的资源,例如:vendor/acme/overlayPRODUCT_CONTRIBUTORS_FILEHTML文件中包含项目的贡献者PRODUCT_TAGS以空格分隔开的指定产品关键词列表制作ubifs文件系统1,安装相关的软件包apt-getinstallliblzo2-dev2,获取相关的工具mkfs.ubifs和ubinize这两个工具是制作
本文标题:Android系统编译移植技术
链接地址:https://www.777doc.com/doc-5372849 .html