把常用的应用程序编译到img文件中,就成了系统的一部分,用户不必自己安装,当然也卸载不了;
同时也可以删减系统自带的应用程序,精简系统;
1.\build\target\proct 目录下generic.mk文件:
java代码 收藏代码
PRODUCT_PACKAGES := \
AccountAndSyncSettings \
DeskClock \
AlarmProvider \
Bluetooth \
Calculator \
Calendar \
Camera \
testMid \
CertInstaller \
DrmProvider \
Email \
Gallery3D \
LatinIME \
Launcher2 \
Mms \
Music \
我们添加一个testMid \ 应用名称。
2.把testMid包放入
\packages\apps 目录下,修改android.mk文件。
Java代码 收藏代码
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := testMid
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
注:LOCAL_PACKAGE_NAME := testMid (包名必须和generic.mk中添加的相同)
编译源码,可以看到在
\out\target\proct\smdkv210\system\app
目录下生存了testMid.apk了。这时system.img也包含了此应用。
-------------------------------------------------------------------
特殊情况:有时,应用需要包含jar包,这时的app导入源码时会出现问题:
MODULE.TARGET.JAVA_LIBRARIES.libarity already defined by ... stop
由于 LOCAL_STATIC_JAVA_LIBRARIES := libarity 会引发错误信息。
目前解决方法是:
\build\core 目录下修改base_rules.mk
注释掉错误信息:
ifdef $(mole_id)
#$(error $(LOCAL_PATH): $(mole_id) already defined by $($(mole_id)))
endif
$(mole_id) := $(LOCAL_PATH)
--重新编译,这时可以通过了。
(2)、删除原厂(Telchips)带源码的应用程序,如DTV_DVBT
在/device/telechips/m801/device.mk
注释掉相应语句:
# PRODUCT_PACKAGES += \
# SampleDVBTPlayer \
同时,在/out/target/proct/m801/system/app 找到相应的.APK包,并删除
㈡ 请问怎么编译安卓软件
呵呵,你学过java吧,基本功就有了,安卓软件是用java来写的~不过我觉得安卓软件是不用编译的,因为里面的主程序是格式化的xml文件,在软件成形的过程中只是把一些文件打包起来就行了,你可以试下把安卓软件的后缀名改成zip,就可以看见源程序和文件了~然后呢,你要想做安卓软件的话,先搭建一个安卓的开发环境,用到的东西有Myeclipse这个软件(你应该知道的),然后到网上下载安卓开发的SDK即开发字典~有一本叫安卓开发案例的书,可以看下,另外网上有很多的视频教程~PS:我自己之前只写过一个安卓的HELLO,WORLD!,由于大一事情比较多就没有继续研究了,如果你有问题可以CALL我哦,我们一起学~
㈢ vs2013用c#做的项目如何让它在安卓手机上运行用vs015编译后可以吗
一、在当前VS中的C#不支持安卓的开发。
1、C#是基于.net技术的,也就是说,用它编写的源文件经过编译后,得到一种中间代码,在安装有.net支持库的电脑上,这种中间代码能被智能设备边翻译边持行。
2、如果有一天,有软件厂商(或个人)编写出能在安卓上安装的.net支持库的话,用C#编写并编译的软件才可能在安卓上运行。
3、基于C#中ASP.net编写的网站、网页,要正确安置在运行有IIS的win server服务器上,能在安卓上被常用的浏览器打开,就象打开普通的网站一样。
二、当前的安卓开发一般基于JAVA。
1、最常用的环境是:1、JAVA JDK环境。2、 android SDK ADT插件 。3、开发软件 Eclipse。
2、此外,Embarcadero RAD Studio XE 10也能支持安卓开发。不过这东西比较新,好不好用就不清楚了。以delphi和C++ Builder一惯的作风,应该是简洁干净好用的。
㈣ apk软件是用什么语言编写和编译的如何开发滴
APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。 apk文件和sis一样最终把android sdk编译的工程打包成一个安装程序文件格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。一个APK文件结构为: META-INF Jar文件中常可以看到 res 存放资源文件的目录 AndroidManifest.xml 程序全局配置文件 classes.dex Dalvik字节码 resources.arsc 编译后的二进制资源文件总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexmp命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。
㈤ Android工程编译顺序是怎么样的先编译哪个模块,后编译哪个模块由谁来决定的
在ActivityManifest.xml声明的Activity中,含有
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
是最先执行的,其它类就的顺序在这个主函数中先调用或跳转哪个就是哪个了
㈥ 有没有哪个安卓软件可以编译并运行java代码
Sand是一个Android平台下的Java集成开发环境(IDE)。首先,Sand包含了一个功能强大的Java编辑器,支持Java关键字高亮,显示行号,多文件编辑,支持蓝牙键盘,自动对齐,自动补足等;其次,Sand是一个完整的Java编译器,可以用于编译Java工程;最后,Sand可以运行编译好的Java工程,有专门的控制台负责输入和输出。
总之,Sand将您的Android设备华丽变身为一个真正的Java开发工具,您可以随时随地编写Java程序。
㈦ 安卓手机为什么会卡
1、进入手机管家界面,选择“一键优化”
2、等待系统初步扫描手机中的垃圾文件,可以释放一部分内存。
3、在手机管家中,选择“手机瘦身”
4、等待应用扫描手机中的文件,扫描完成后可以进行一些大小文件的选择性删除。
1、安卓系统代码开源
众所周知安卓系统最大优势是开源,系统源码可以被公众使用并且对其修改和发行,允许任何移动终端厂商和开发者加入到Android联盟中来。但是开源同样也存在着弊端,那就是应用质量参差不齐以及标准杂乱无章。
开源大大降低了安卓系统开发者的门槛,而一个单纯功能的简单应用由于代码质量粗糙,很可能要占用200MB RAM。如果手机运存只有2GB,卡顿会变得特别明显。
我们操作安卓手机的时候,有时候点开一个浏览器软件,后台会自动唤醒有利益相关的几款APP,即使安卓原生系统也无能为力。毕竟这一机制后面,是彼此应用的`利益链条,而对于国内应用市场,谷歌更是鞭长莫及。大量的程序运行势必拖慢了手机的运行速度,手机操作起来就无法顺畅。
2、系统沉淀垃圾
微信作为如今最常用通讯软件,安卓版安装包大小是30MB;不过半年以后再去看这个应用,它的内存占用可以达到500MB甚至更多。这种情况在视频软件里随处可见,尤其一些社交和音乐/视频应用。积年累月当应用把手机存储快要堆满了,系统运行速度肯定越来越慢。
3、系统版本无法升级
根据报告显示,在去年末Android5.0及其以上(Android 5.1和Android 6.0)的市场份额仅占全部安卓阵营的26%。换句话说,三分之二的用户还停留在Android 4.X时代,为什么强调这个分水岭,要从Android5.0说起。Android 5.0系统即彻底从Dalvik转换到ART,在系统转换以前:应用在运行的过程中,虚拟机Dalvik通过一个叫JIT(Just-in-time)的解释器动态的进行编译并执行,这种虚拟机模式会大大拖慢系统的运行效率。作为对比,ART模式则是在用户安装应用时就进行预编译操作,将原本在程序运行中时的编译动作提前到应用安装时。在省去解释代码这一过程之后,应用的运行效率会更高。
完成这种更新延迟的根本在于很多厂商在手机售出之后很少进行系统升级推送,同时大量消费者又没有更新手机系统的习惯。很多手机系统卡在Android4.4,而越来越多的新应用却是为了适配更高系统打造的,所以手机卡顿不可避免。
卡顿了用户需要怎么做
怎样解决手机越用越卡?第一需要有一台能保障系统定期更新的手机;在这一基础上定期对手机内存清理,把碎片和部分缓存信息清理干净。更进一步操作还会利用到系统自带防火墙或者第三方自启动管理软件,根据使用习惯屏蔽一部分自启动应用。
当然通读全文,不难发觉随着日积月累,手机卡顿现阶段在所难免。而用户自身,甚至是手机厂商能做的,是把这个卡顿的时间点不断推迟。我们只能寄希望于那些技术开发者,早日研究出不会卡顿的手机。
㈧ 怎么单独编译安卓系统源码指定模块
一. 首先在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
这样一切就搞定了。