导航:首页 > 源码编译 > 安卓系统编写编译

安卓系统编写编译

发布时间:2022-05-31 23:12:47

Ⅰ 安卓程序是用什么语言编写的

androidjava编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。

两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。


(1)安卓系统编写编译扩展阅读

Android应用程序是android系统智能手机的主要构成部分,实现了智能手机的多样性、多功能性,结合了办公功能、娱乐功能、生活实用功能等,广受人们的喜爱。

Android应用程序有很多,其中让人耳目一新的个性化实用性应用程序有:

MINT、CHROME、神奇阿莱西、SWYPE/SWiftKey键盘、SWYPE/SWiftKey键盘、Swype、POCKET阅读器、SNAPSEED、EYE IN THE SKY天气、FLICK NOTE、LIGHT FLOW、ANY.DO。

Ⅱ 自己可以编译安卓源码

用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:

sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”

其中[email protected]为你自己的邮箱.

简要说明

android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.

源码下载

由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)

repo工具下载及安装

通过执行以下命令实现repo工具的下载和安装

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:

我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:


这里写图片描述

执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.

错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.

    结束吧

    到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    Ⅲ 如何自己编译android系统并制作刷机包

    android系统制作刷机包方法:

    【一】:下载安装最新版ROM助手(市场中有很多类似的制作工具,关键要求操作简单,功能强大),安装程序非常简单,只需在一只蘑菇首页内直接下载,并解压到自己的电脑安装即可。

    【二】:如果已经下载了与机型匹配的ROM刷机包,那么现在可以直接打开ROM助手了,接下来绘制专属个性的完美刷机包就从这里开始吧。

    【三】:打开软件后,它会自动升级到最新版本,另外打开主界面后,会直观简明的显示出它的所有功能,例如:性能优化,系统精简,预装APK,签名打包等等。提醒大家,不要贪心哦,要根据自己的需求点击需要操作的功能,如系统精简,然后进入操作界面,所有功能全部修改一遍也无妨,反正都是一键操作,省时省力。

    Ⅳ 安卓系统(android)怎样才能成功编译安装‘make’命令

    tar.gz(bz或bz2等) 一、安装1、打开一个SHELL,即终端2、用cd 命令进入源代码压缩包所在的目录3、根据压缩包类型解压缩文件(*代表压缩包名称) tar -zxvf ****.tar.gztar -jxvf ****.tar.bz(或bz2)4、用CD命令进入解压缩后的目录5、输入编译文件命令:./configure(有的压缩包已经 编译过,这一步可以省去) 6、然后是命令:make 7、再是安装文件命令:make install8、安装完毕如果安装了busybox命令就要这样用: busybox+空格+命令

    Ⅳ 如何在Android系统源码的环境下用make来编译

    第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
    1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
    android:sharedUserId="android.uid.system"这个属性。
    2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
    3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。

    Ⅵ 如何编译一个精简的Android系统

    本次试验使用的android源码是4.2,编译的架构是mini-mips。

    一、所做的工作
    1、修改build/target/proct/mini.mk,去掉一些不必要的模块(例如Phone、DownloadManager等)
    2、修改SystemServer.java,屏蔽一些service,让系统能够启动起来(例如,Location Manager、Telephony Registry)
    3、修改dalvik/vm/native/dalvik_system_Zygote.cpp,注释掉因为检查不到外部存储而导致dalvik abort的地方 (这是googel的一个bug,在2013年1月份已解决,如果用这以后的代码不用修改此处)
    4、修改WindowManagerService.java,把发送BOOT_TIMEOUT消息的时间改为0(之前为30秒)

    二、系统优化后的效果(验证工作均在mips模拟器上进行)
    1、节省运行内存,下面是全编译与mini编译的内存使用状态的对比
    1)full build
    MemTotal: 499360 kB
    MemFree: 242064 kB
    2)mini build
    MemTotal: 499360 kB
    MemFree: 395192 kB

    2、缩短开机启动时间
    在虚拟机上的启动时间
    1)full build-29秒
    2)mini build-14秒

    3、只启动home程序,其余的应用程序均被移除

    三、保留android的开发环境
    1、adb,ddms,apkinstall等,都能正常工作
    2、在eclipse中编写的android应用程序能够运行在该mini-android之上

    四、开机自动启动指定应用程序
    本次测试使用Gallery.apk应用程序,修改其源码后可以实现随系统的启动而自动启动的功能。

    Ⅶ 怎么单独编译安卓系统源码指定模块

    一. 首先在Android源代码目录下的build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用的工具:
    USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh
    注意,这是一个source命令,执行之后,就会有一些额外的命令可以使用:
    - croot: Changes directory to the top of the tree.
    - m: Makes from the top of the tree.
    - mm: Builds all of the moles in the current directory.
    - mmm: Builds all of the moles in the supplied directories.
    - cgrep: Greps on all local C/C++ files.
    - jgrep: Greps on all local Java files.
    - resgrep: Greps on all local res/*.xml files.
    - godir: Go to the directory containing a file.
    这些命令的具体用法,可以在命令的后面加-help来查看,这里我们只关注mmm命令,也就是可以用它来编译指定目录的所有模块,通常这个目录只包含一个模块。
    二. 使用mmm命令来编译指定的模块,例如Email应用程序:
    USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/
    编译完成之后,就可以在out/target/proct/generic/system/app目录下看到Email.apk文件了。Android系统自带的App都放在这具目录下。另外,Android系统的一些可执行文件,例如C编译的可执行文件,放在out/target/proct/generic/system/bin目录下,动态链接库文件放在out/target/proct/generic/system/lib目录下,out/target/proct/generic/system/lib/hw目录存放的是硬件抽象层(HAL)接口文件,后面的文章里面,我们会陆续提及到,敬请关注。
    三. 编译好模块后,还要重新打包一下system.img文件,这样我们把system.img运行在模拟器上时,就可以看到我们的程序了。
    USER-NAME@MACHINE-NAME:~/Android$ make snod
    四. 参照Ubuntu上下载、编译和安装Android最新源代码一文介绍的方法运行模拟器:
    USER-NAME@MACHINE-NAME:~/Android$ emulator
    这样一切就搞定了。

    Ⅷ 如何在安卓系统下构建c++编译环境

    这个有点难,现在安卓能用的(我知道的)只有一个软件C4droid可以在android系统中编译c/c++:

    编译界面:

    Ⅸ 如何单独编译安卓系统源码指定模块

    Android源码目录下的build/envsetup.sh文件,描述编译的命令

    - m: Makes from the top of the tree.

    - mm: Builds all of the moles in the current directory.

    - mmm: Builds all of the moles in the supplied directories.

    要想使用这些命令,首先需要在android源码根目录执行. build/envsetup.sh 脚本设置环境

    m:编译所有的模块

    mm:编译当前目录下的模块,当前目录下要有Android.mk文件

    mmm:编译指定路径下的模块,指定路径下要有Android.mk文件

    下面举个例子说明,假设我要编译android下的\hardware\libhardware_legacy\power模块,当前目录为源码根目录,方法如下:

    1、. build/envsetup.sh

    2、mmm hardware/libhardware_legacy/power/

    编译完后 运行 make snod

    会重新将你改过的模块打入到system.img中

    阅读全文

    与安卓系统编写编译相关的资料

    热点内容
    基于单片机的超声波测距仪的设计 浏览:738
    xp自动备份指定文件夹 浏览:660
    我的世界服务器如何让世界平坦 浏览:167
    服务器和电脑如何共享 浏览:685
    程序员早期症状 浏览:568
    学小学生编程哪里学 浏览:947
    单片机控制与设计论文 浏览:775
    破解加密视频违法嘛 浏览:242
    pythonforandroid下载 浏览:235
    进光遇显示服务器繁忙怎么办 浏览:643
    安卓手机如何改成苹果xr 浏览:519
    华为服务器为什么在山里 浏览:274
    黑马程序员基础测试题 浏览:265
    网易服务器如何ban物品指令 浏览:817
    安卓微信不更新了怎么办 浏览:157
    专业程序员什么水平 浏览:879
    如何查看服务器硬盘剩余空间 浏览:574
    cdda算法 浏览:412
    javawebserver 浏览:68
    安卓手机怎么看视频区域限制 浏览:156