android apk安装包的制作过程图解

合集下载

Android手机升级包和定制包制作教程

Android手机升级包和定制包制作教程

1.补丁/升级包制作方法1.1ROOT目前的民间ROM 基本上已经自带ROOT 所以省略此步骤当然前提得是ROOT过的1.2工具准备下载安装附件中的R.explorer管理器(rootexplorer.v2.9.4.apk)这个工具的作用是备份APK文件、删除APK文件、查看系统目录里面都有什么下载附件中的AndroidResEdit_By_hanhualan...解压到电脑里(如果不能运行则说明你需要安装.NET Framework 2.0)我们主要用这个来对定制包签名1.3定制包制作知识一般定制ROM(不是美化、也不是制作MOD)其实就是对手机内存里的system/app文件夹的内容进行自定义,自己安装的软件将不会出现在这里,而是\data\文件夹中。

系统所有的程序都在这个文件夹里,比如浏览器、拨号器、联系人等先来看一下通常情况下这个文件夹里都包含什么:\system\app\AlarmClock.apk 闹钟\system\app\AlarmClock.odex\system\app\Browser.apk 浏览器\system\app\Browser.odex\system\app\Bugreport.apk Bug报告\system\app\Bugreport.odex\system\app\Calculator.apk 计算器\system\app\Calculator.odex\system\app\Calendar.apk 日历\system\app\Calendar.odex\system\app\CalendarProvider.apk 日历提供\system\app\CalendarProvider.odex\system\app\Camera.apk 照相机\system\app\Camera.odex\system\app\com.amazon.mp3.apk 亚马逊音乐\system\app\Contacts.apk 联系人\system\app\Contacts.odex\system\app\DownloadProvider.apk 下载提供\system\app\DownloadProvider.odex\system\app\DrmProvider.apk DRM数字版权提供\system\app\DrmProvider.odex\system\app\Email.apk 电子邮件客户端\system\app\Email.odex\system\app\FieldTest.apk 测试程序\system\app\FieldTest.odex\system\app\GDataFeedsProvider.apk GoogleData提供\system\app\GDataFeedsProvider.odex\system\app\Gmail.apk Gmail电子邮件\system\app\Gmail.odex\system\app\GmailProvider.apk Gmail提供\system\app\GmailProvider.odex\system\app\GoogleApps.apk 谷歌程序包\system\app\GoogleApps.odex\system\app\GoogleSearch.apk 搜索工具\system\app\GoogleSearch.odex\system\app\gtalkservice.apk GTalk服务\system\app\gtalkservice.odex\system\app\HTMLViewer.apk HTML查看器\system\app\HTMLViewer.odex\system\app\IM.apk 即使通讯组件包含MSN、yahoo通\system\app\ImCredentialProvider.apk\system\app\ImProvider.apk\system\app\ImProvider.odex\system\app\Launcher.apk 启动加载器\system\app\Launcher.odex\system\app\Maps.odex\system\app\MediaProvider.apk 多媒体播放提供\system\app\MediaProvider.odex\system\app\Mms.apk 短信、彩信\system\app\Mms.odex\system\app\Music.apk 音乐播放器\system\app\Music.odex\system\app\MyFaves.apk T-Mobile MyFaves程序\system\app\MyFaves.odex\system\app\PackageInstaller.apk apk安装程序\system\app\PackageInstaller.odex\system\app\Phone.apk 电话拨号器\system\app\Phone.odex\system\app\Settings.apk 系统设置\system\app\Settings.odex\system\app\SettingsProvider.apk 设置提供\system\app\SettingsProvider.odex\system\app\SetupWizard.apk 设置向导\system\app\SetupWizard.odex\system\app\SoundRecorder.apk 录音工具\system\app\SoundRecorder.odex\system\app\Street.odex\system\app\Sync.apk 同步程序\system\app\Sync.odex\system\app\Talk.apk 语音程序\system\app\Talk.odex\system\app\TelephonyProvider.apk 电话提供\system\app\TelephonyProvider.odex\system\app\Updater.apk 更新程序\system\app\Updater.odex\system\app\Vending.apk 制造商信息\system\app\Vending.odex\system\app\VoiceDialer.apk 语音拨号器\system\app\VoiceDialer.odex\system\app\YouTube.apk Youtube视频\system\app\YouTube.odex然后是定制包的结构,定制包的命名一般是XXXX(英文).zip内容包括/system/app/my.apk(你想要放进系统中的程序)/META-INF/com/google/update-script(定制包脚本)/META-INF/CERT.SF(签名文件)/META-INF/CERT.RSA(签名文件)/META-INF/MANIFEST.MF(签名文件)(附件中的custom.zip为范例,大家可以下载直接进行修改)首先应将准备好的程序放进这个ZIP包的/system/app目录里,只要将程序拖进附件中custom.zip的APP目录即可然后删除/META-INF/CERT.RSA和META-INF/CERT.SF这两个文件,为了签名做准备下面我们的来看最后一处需要编辑的地方——脚本1.4脚本:现在我们对里面的文件有了大致的了解,那么举例说明,如果我们要做一个基于以上ROM的定制包,那么大概要进行两种操作1.添加目录里的APK程序到ROM的system/app里2.从ROM里删除APK程序(即瘦身)3.显示进程添加目录的语句为copy_dir PACKAGE:定制包路径手机内存路径删除程序的语句为delete 手机内存路径显示进程语句为show_progress脚本文件可用TXT、记事本等程序作为打开方式并编辑保存作为初学者只需要掌握以下范例即可show_progress 0.1 0delete SYSTEM:app/DivXRegCode.odexdelete SYSTEM:app/YouTube.apkcopy_dir PACKAGE:system SYSTEM:show_progress 0.1 10其中对前后两个show_progress语句不需要理解,看中间的,第一句是删除system/spp文件夹内的DivXRegCode.odex文件,第二句是删除system/spp文件夹内的YouTube.apk文件,第三句是复制(同时会覆盖已存在的文件)定制包中的system文件夹到手机内存的system文件夹。

Android开发教程入门(软件安装流程)

Android开发教程入门(软件安装流程)

Android开发教程第一部分:安装SDK这里介绍如何安装Android的SDK开发包和配置开发环境。

如果你还没有下载SDK,点击下面的链接开始。

Download the Android SDK系统和软件配置要求要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下:支持的开发环境EclipseEclipse 3.2,3.3(Europa)Android开发工具插件(可选)其他的开发环境或者IDEJDK5.0或者JDK6.0(仅有JRE是不够的)安装SDK下载好SDK包后,将zip文件解压缩至合适的地方。

在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tool s加入到你的路径中1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。

如果没有找到设定PATH变量的行,你可以自己添加一行:export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径>2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。

如果还没有在机器上设定这个文件,你可以创建一个.ba sh_profile文件。

3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。

通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。

需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。

安装Eclipse插件(ADT)如果你选择Eclipse作为Android的开发环境,可以安装一个专门为Android定制的插件:Android Development Tools(ADT),ADT插件集成了对Android工程和工具的支持,它包含了大量功能强大的扩展,使得创建、运行、调试Android程序更简单更快捷。

android源码编译及rom制作

android源码编译及rom制作
内部测试版本:Ubuntu10.04 Gingerbread (2.3.x) or newer:64 bit系统 工具:Python 2.5-2.7
GNU make 3.81-3.82 JDK 6(生成 Gingerbread 或更高版本) JDK 5(Froyo 或旧版本) Git 1.7 或更高版本 gcc/g++ 4.4 (其他版本编译出错)

设置Linux编译环境
安装JDK: Java6:
$ sudo add-apt-repository "deb / lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk
一整套编译 100GB 选择编译分支
建议:不要使用虚拟机安装ubuntu编译 1、编译花费时间长,需要内存大 2、如果配置低,可能会卡住不动 3、虚拟机连接手机有问题,很可能不识别,编译前需要从手机拉 配置数据;不能使用fastboot模式刷机

设置Linux编译环境
|-- prebuilt
(x86和arm架构下预编译的一些资源)
|-- sdk
(sdk及模拟器)
|-- system
(文件系统库、应用及组件——C语言)
|-- vendor
(厂商定制代码)

Android源码编译
初始化编译环境 下载代码树 编译 编译内核
sudo chmod a+rx /etc/udev/rules.d/51-android.rules sudo /etc/init.d/udev restart
3.重启adb服务(必须为sudo 已配置android环境变量)

第一课 apk安装包解析

第一课 apk安装包解析

Android手机软件汉化教程目录:第一课 apk安装包解析第二课 arsc文件汉化第三课 xml文件汉化第四课 dex文件汉化第五课打包签名第一课apk安装包解析今天我们正式开始学习android程序的汉化!首先我们来了解一下apk文件APK是Android Package的缩写,即Android安装包。

APK是类似Symbian Sis或Sisx的文件格式,将apk通过电脑或传入手机即可安装程序。

apk文件实际是一个zip压缩包,可以通过解压缩工具解开*.apk文件。

我们使用平时最常用的一款进程结束软件Advanced Task killer 作为本次课程的教学软件!先新建一个文件夹,用rar压缩工具将压缩包内的文件解压到文件夹内,解压到文件夹以后,我们会得到如下图的几个文件和文件夹其中,META-INF 和res这两个文件夹,还有AndroidManifest.xml,classes.dex和resources.arsc这3个文件,它们是每个软件都有的,也就是必须的!assets有的软件有,有的没有,有的软件还有些其他的文件夹META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全这里先不用管它,最后APK签名时再来说它。

res目录是存放资源文件的不同的软件,res目录下的文件夹也不同,一般也就是drawable(图片所在文件夹)drawable-hdpi(高分辨率图片所在文件夹)layout(界面布局xml文件所在文件夹)layout-hdpi(高分辨率界面布局xml文档所在文件夹)menu(一些菜单文件所在目录)raw(存放帮助类文档或其他资源的文件夹,如help.html;clock.zip)xml(其他一些xml文件所在目录)这几个。

这款软件就只有drawable,layout,xml这三个。

drawable这个文件夹一般都是存放软件中的图片。

有的软件要修改图片的,就要来这里找!一般游戏居多。

Androidstudio3.5.2安装图文教程详解

Androidstudio3.5.2安装图文教程详解

Androidstudio3.5.2安装图⽂教程详解⽬录1、下载界⾯2、安装3、安装完成4、配置5、选择界⾯样式6、分配空间⼤⼩8、新建⼀个⼯程9、开发界⾯(⼿机)10、项⽬名称等等配置11、等待安装(有个圈在转)12、成功了13、Run and Run APPAndroid Studio软件下载地址如下:下载:Android ⼯具:1、下载界⾯2、安装每⼀步按照我选择的框安装就okay了3、安装完成4、配置5、选择界⾯样式当然你电脑内存⼤的话,分配⼤⼀点的空间内存7、配置完成我这有个⼩问题,不过没事,你可能不会出现这种问题,如果出现也没事,继续安装,后续再处理这个问题8、新建⼀个⼯程9、开发界⾯(⼿机)10、项⽬名称等等配置11、等待安装(有个圈在转)12、成功了13、Run and Run APP你会发现出现错误,是因为前⾯有个错误,HAXM(⽤于虚拟机)没安装成功你必须去原来是VT-x没有开启,即BIOS⾥⾯的“Intel Virtualization Technology”选项没有打开。

接下来需要开启VT-x,需要进⼊到电脑主板bios:对于⼀般的台式机,只要开机的时候不停的按Delete键就能进⼊Bios。

对于⼀般的笔记本电脑,只要开机的时候不停的按F2或者F8或者F12键就能进⼊Bios。

本⼈⽤的是win8系统,在开机的时候不管怎么按都进⼊不了Bios。

win8之所以开机速度快是启动了快速启动功能。

其实Win8进⼊Bios只要将快速启动功能关闭,再重启电脑就⾏了。

Win8的快速启动功能如何的开启和关闭:控制⾯板—>电源选项—>选择电源按钮的功能—>更改当前不可⽤的设置—>启⽤快速启动—>保存修改关闭快速重启功能后,重启电脑,在重启过程中按F2,进⼊bios。

切换到Configuration选项,将设置Intel Virtual Technology=Enable;保存并退出,然后重新安装android studio即可。

在Android上安装apk软件图文教程

在Android上安装apk软件图文教程

Android软件APK安装方法很简单,下面我就和大家分享一下如何安装APK文件到Android模拟器的图文教程。

1) 首先启动Android模拟器,在Android SDK的Tools文件夹中找到Emulator文件,双击emulator.exe 即可启动模拟器2) 复制需要安装的APK文件到Android SDK的Tools文件夹中(APK和emulator.exe同文件夹),这里我们演示安装的为MobileQQ1.0_Android_Beta2Build0246.apk文件3) 执行Windows 开始菜单=> 所有程序=> 附件=> 命令提示符或通过Win+R 组合键调出运行对话框输入cmd 单击确定即可。

4) (由于我的Android SDK安装路径为E盘,所以需要定位模拟器tools目录) 在cmd命令提示符中输入E: 回车,如图2第一行,接下来输入cd study\Android开发\android-sdk-windows\tools后回车,由于我没有配置环境变量,所以最后执行E:\study\Android开发\android-sdk-windows\tools\adb install MobileQQ1.0_Android_Beta2Build0246.apk执行安装,5) 最后在Android模拟器点击下图中的按键,在展开的界面中就可以看到我们安装好的MobileQQ1.0_Android_Beta2Build0246.apk到此我们就完成了对MobileQQ1.0_Android_Beta2Build0246.apk程序的安装。

下面我让我们来体验一下在Gphone模拟器上运行MobileQQ1.0的效果吧!启动界面:在这里较之在手机要慢上一些。

对于MobileQQ1.0的使用,大家都很熟悉了,我就不多啰嗦了。

按照此方法安装其他软件我试着访问了一下凤凰网:在这里我们能看到网站的整体效果,点击任意一处即可放大浏览希望我的劳动能够帮助一部分朋友!转载请注明网址来源。

TTF字体制作成APK直装包(二)---直装包编译篇

TTF字体制作成APK直装包(二)---直装包编译篇

TTF字体制作成APK直装包(二)---直装包编译篇本篇主要讲解的是APK包制作部分,教程的全部链接放在下面了一、字体制作部分二、字体APK包制作部分教程中涉及的软件及工具见教程第一部分有的同学反映,APK包反编译后如果再次制作的话,就会替换原先的字体包,Android的APK程序是通过package属性来做唯一标识的,所以楼主在这里一并把教程写出来1.把网上下下来的字体安装包放到Apk Manager 目录下的place-apk-here-for-modding 目录下,然后回到根目录,双击script.bat2.打开后,如果出现这样的对话框直接敲任意键就行了,这是因为Apk Manager没有连接到ADB,不用管3.选择项目,输入22,然后再选择你要反编译的APK4.确定后回到主界面,输入9,回车,进行反编译5.反编译成功后,我们需要打开生成的项目进行修改,项目位置在proctes/文件夹下每个文件分别说明一下,我们从下往上说起(这里的说明只针对我们的字体包说明,对于其他APK包不一定适用,我尽量说的通俗点)apktool.yml 是apk manager 自动生成的用来标识项目的文件,跟我们修改没关系,可以不用管AndroidMainfest.xml 程序的主配置文件,程序运行的入口文件,程序一打开的时候会先从这里读取smail 文件夹程序的类文件,就是程序逻辑的主要代码,不过这里是被加密后的文件了,不影响我们修改res 文件夹程序的资源文件放一些图片啊之类的assets 文件夹程序所涉及到的资源文件,如字体6.好了,我们现在开始修改第一个文件 AndroinMainfest.xml,图下面的红框部分就是程序的唯一标识符了,很多同学需要字体包被替换就是因为两个字体包的package是一样的,android认为是同一个程序,所以,我们接下来要做的就是修改这个包名,这里我就拿“方正静蕾体”为例,我们把包名改为字体的汉语拼音首字母“fzjl”保存后就可以了7.现在进入smail文件夹,这下面包括了好几层的文件夹,每个文件夹的名称都对应了主文件里面的package内容,我们直接点到最后一个叫文件夹,并把这个文件夹的名称改为“fzjl”8.修改完文件夹名称后,点击进入该文件夹,里面都是一些.smail格式的文件,我们要做的就是打开这些文件,并替换这些文件里面的所有wryhzt为fzjl(这里的wryhzt对应的就是主文件里面蓝色框里的内容,和最后一个文件夹的名称是一样的)所有文件都替换完成后就可以关闭这个文件夹了9.好了,现在我们进入res文件夹打开后,里面会有3个文件夹,其中第一个就是程序的图标,如果有需要修改程序图标的同学,可以替换掉这个文件,文件名必须一致我们主要说明的是最后一个 values文件夹这里我们主要讲解一下strings.xml,第一个public.xml可以不用管,里面放置的是资源文件的链接打开strings.xml红框部分就是字体包的程序名称,我们在这里修改为“方正静蕾”,注意这里要说明的是“程序包”名称,而不是字体名称,关于字体名称的修改我们会在下面讲到10.好了,现在进入教程的最后一个文件夹,这里面有两个文件夹 fonts 放置的是我们需要替换的字体,我们把教程一里面做好的字体放到这个文件夹下,取名为 "fzjl.ttf"替换好字体后,我们再打开xml文件夹,先把里面的xml文件修改为fzjl.xml 这个名字需要和主文件里面蓝色框的内容一样11.打开fzjl.xml 按照下图的标志进行修改字体名称对应fonts 文件夹下的字体名称12.好了,项目的修改就完成了,下面我们要做的就是对项目进行编译签名了打开apk manager 工具反编译完成后,我们打开刚才放置APK包的文件夹place-apk-here-for-modding 目录下可以看到有一个 singe+文件名的apk包,这个包就是我们知足成功的字体包了点击安装完成后打开手机好了,我们选中字体看一下效果安装包制作的过程就这样了至此关于字体修改的过程就结束了,祝各位同学在制作的时候成功说实话,可能看上去教程很难,但是你一旦学会了,会对你的android 知识有很大的提高。

Android手机的APK制作

Android手机的APK制作

一般针对每个机型的完整刷机包中会有一个boot.img文件,这就是boot分区镜像文件。如何编辑该镜像文件可以参照这篇文章/wiki/inde ... Re-Pack_Boot_Images。
当Linux内核启动完毕后,就开始执行根文件系统中的init程序,init程序会读取启动脚本文件(init.rc和init.xxxx.rc)。启动脚本文件的格式大家可以在网上找到很多参考资料,这里就不写了,而且我们在原厂ROM上移植MIUI的原则是不修改boot分区,因为有一些机型无法修改boot分区。
system/framework: 该目录下存放的是框架层的JAR包,其中对MIUI移植来说有3个最重要的JAR包(framework.jar, android.policy.jar, services.jar)。后续的文章会重点介绍这3个包。
system/fonts: 该目录下存放的是系统缺省的字体文件。
system/media:该目录下存放的是系统所使用的各种媒体文件,比如说开机音乐,动画,壁纸文件等。不同的手机该目录的组织方式可能不一样。如何修改这些文件请参考网上对应机型形形色色的教程,这里不再赘叙。
system/bin: 该目录下存放的是一些可执行文件,基本上是由C/C++编写的。其中有一个重要的命令叫app_process下一节单独介绍。
recovery模式:recovery是android定义的一个标准刷机协议。当进入recovery模式时,secondary stage bootloader从recovery分区开始启动,recovery分区实际上是一个简单的Linux系统,当内核启动完毕后,开始执行第一个程序init(init程序是Linux系统所有程序的老祖宗)。init会启动一个叫做recovery的程序(recovery模式的名称也由此而来)。通过recovery程序,用户可以执行清除数据,安装刷机包等操作。一般的手机厂商都提供一个简单的recovery刷机,而大名鼎鼎的CWM Recovery就是一个加入了很多增强功能的recovery,要想用上CWM Recovery前提是recovery分区可以被刷写。大家在论坛上看到的解锁bootloader,通常指的就是解锁recovery或fastboot,允许刷写recovery分区,这样大家就可以用上喜爱的CWM Recovery了。

教您轻松制作安全软件静默安装包教程

教您轻松制作安全软件静默安装包教程

教您轻松制作安全软件静默安装包教程
制作安全软件静默安装包可以提高安装软件的效率,并且节省
用户的时间。

下面介绍一个简单的方法来制作安全软件静默安装包:步骤二:准备需要制作的软件安装包文件
接下来,我们需要准备需要制作的安全软件安装包文件,并将
其复制到您的计算机上。

步骤三:制作安装包
1. 打开安装包制作工具,并选择创建一个新的安装包
2. 设置安装包的基本信息,包括名称,版本,语言等
3. 将需要安装的软件文件添加到安装包中
4. 配置安装选项,包括安装路径,快捷方式等
5. 配置安装细节,包括安装界面,安装脚本等
6. 保存并生成安装包
步骤四:测试安装包
生成安装包后,我们需要进行测试。

将安装包文件放置到需要安装软件的计算机上,并运行安装包文件。

如果安装过程能够自动化完成,那么我们就成功制作出了一个安全软件静默安装包。

希望上述步骤能够帮助到您,让您更加高效地处理软件安装。

如果您有任何疑问或建议,请随时与我们联系。

安卓安装软件教程

安卓安装软件教程

如何安装安卓软件很多朋友刚拿到android手机的时候大概首先就是要往里面装软件了,在ANDROID平台下安装文件的后缀名为“.apk”,就好像PC上的安装文件的后缀名为“.exe”塞班平台安装文件的后缀名为“.sis”一样,所以我们一般称ANDROID平台下安装文件为“APK”。

安装软件前的工作:注意手机上首先要进行一些设置,设置——应用程序——勾选“未知源”设置——应用程序——开发——勾选“USB 调试”方法一利用手机内置APK安装器设置——应用程序——APK安装器只要把APK程序都放到SD卡上,就可以直接在这个内置的APK安装器上进行软件的安装与卸载。

方法二利用PC客户端android应用安装器可以使用PC端软件:如G蛋(下载)、91手机助手、豌豆夹等Android应用安装器。

这些Android应用安装器中都有海量的Android应用。

你首先要在PC上安装,然后将手机连接P C,这些Android应用安装器会自动关联你手机设备,点击安装,就可以将软件安装到你的手机里了。

方法三利用资源管理器如果你手机没有自带APK安装器,可以上google market下载一个“APK安装器”。

首先,你要确定你手机中有内置google market。

然后,你需联网登录google market下载一个“AP K安装器”,推荐你使用“ASTRO资源管理器”。

之后你要安装新软件,可以把需要安装的文件拷贝到SD 卡里,使用“ASTRO资源管理器”进行软件的安装。

下面详细介绍下通过91手机助手来安装安卓软件的方法:Android系统手机软件安装图文详细教程1、安装91手机助手:下载91手机助手,下载完成后双击图标并根据提示进行安装。

2、连接识别手机:用数据线将手机和计算机相连接,打开91手机助手,此时计算机屏幕会提示安装守护程序,点击下一步进行安装。

安装完成之后手机助手就会识别到手机。

3、安装软件:双击下载的后缀名为.apk的文件,计算机屏幕会弹出对话框,点击安装软件即开始安装到手机上,软件安装完成之后对话框会提示安装成功并倒数5秒自动关闭。

安卓APK文件汉化图解教程

安卓APK文件汉化图解教程

目录:前言1◆关于 APK 文件◆ 1◆APK文件的汉化过程概述◆2◆APK文件详细汉化过程◆2一、选用工具2二、开始汉化2第一步,首先使用WinRAR 3第二步,解压APK文件。

4第三步,开始汉化。

5第四步,汉化图片。

7第五步,收尾打包。

9三、文件签名9四、安装测试10◆关于 APK 文件◆APK是Android Package的缩写,即Android安装包。

APK是类似Symbian Sis或Sisx的文件格式。

通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

apk文件和sis一样最终把android sdk编译的工程打包成一个安装程序文件格式为apk。

APK文件其实是zip格式,但后缀名被修改为apk,在Android系统安装时,APK程序会被存放在系统默认的APP目录中。

现在很多人在使用GPhone 时,特别是G1都喜欢使用APP To SD 技术设置。

这就是把系统默认的APP文件夹移到SD卡上,安装APK程序时,直接把APK安装到手机SD储存卡,而不是手机内存,这样就大大提升了手机的使用空间,同时也就相对的提示了手机运行速度。

◆APK文件的汉化过程概述◆在汉化APK之前,不得不先提一下汉化的大概过程,只有先做一个简单的了解,才能更好的熟悉后面的汉化步骤。

1. 首先,汉化APK之前,必须先用WinRAR之类的压缩解压缩工具,将其进行解压缩。

2. 然后,解压后,我们就可以开始汉化了,一般APK文件只需要汉化解压后得到的扩展名为.ARSC的文件,即可!3. 接着,用ARSC文件汉化工具将其打开,之后就可以在汉化工具里进行汉化了。

汉化后的文件不会对APK程序运行做任何影响。

4. 再接着,再次用“压缩及解压缩”工具打开APK文件,直接把汉化后的ARSC文件添加替换进去。

同时,在进入压缩包里的【META-INF】目录(这是储存签名文件目录),删除里面除了MANIFEST.MF外的其他文件。

androidAPK应用安装过程以及默认安装路径

androidAPK应用安装过程以及默认安装路径

应用安装过程以及默认安装路径分类:一:安装过程是类似或的文件格式。

通过将文件直接传到模拟器或手机中执行即可安装。

应用安装有如下四种方式1. 系统应用安装――开机时完成,没有安装界面2. 网络下载应用安装――通过应用完成,没有安装界面3. 工具安装――没有安装界面。

4. 第三方应用安装――通过卡里的文件安装,有安装界面,由应用处理安装及卸载过程的界面。

应用安装的流程及路径应用安装涉及到如下几个目录:系统自带的应用程序,无法删除用户程序安装的目录,有删除权限。

安装时把文件复制到此目录存放应用程序的数据将中的文件安装到目录下(文件是虚拟机的可执行文件,其大小约为原始文件大小的四分之一)安装过程:复制安装包到目录下,解压并扫描安装包,把文件(字节码)保存到目录,并目录下创建对应的应用数据目录。

卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。

一、系统应用安装:处理各种应用的安装,卸载,管理等工作,开机时由启动此服务(源文件路径:\\\\\\\\)服务启动的流程:1. 首先扫描安装“\”目录下的包1. (,| );2.第二步扫描安装“\”目录下的各个系统应用(, );3.第三步扫描“\”目录,即用户安装的第三方应用(, 0, );4.第四步扫描" \"目录,即安装保护的文件(目前没有遇到过此类的应用)。

(,0, | );安装应用的过程1(, , ) 遍历安装指定目录下的文件2(,, , ,) 安装文件3(, , ,, , )通过解析安装包获取到安装包的信息结构4(,); 实现文件复制的安装过程(源文件路径:\\\\)二、从上下载应用:应用需要使用账户登录才可以使用,选择某一应用后,开始下载安装包,此过程中,在手机的信号区有进度条提示,下载完成后,会自动调用的接口安装,调用接口如下:( , ):文件下载完成后保存的路径:处理返回的安装结果:安装的参数,从上下载的应用,安装参数为()接口函数的安装过程:1 (, , ,):安装完成后此名称保存在里,一般为,不是关键参数2 = (, );把文件复制到临时目录下的临时文件3 ( ,, ,, )解析临时文件,获取应用包名= ((), 0);4.判断如果带有参数,则调用(,,, ,, , ,)5.如果没有,则调用(,,, ,, , ,);6 (, , ,, , )以后的流程,与开机时的应用安装流程相同。

AndroidAPK应用安装原理...

AndroidAPK应用安装原理...

AndroidAPK应⽤安装原理...本⽂实例讲述了Android APK应⽤安装之AndroidManifest使⽤PackageParser.parserPackage原理。

分享给⼤家供⼤家参考,具体如下:Android 安装⼀个APK的时候⾸先会解析APK,这⾥要做很多事情,其中⼀个事情就是解析Manifest.xml⽂件,并将所有APK 的Manifest封装到各种对象中并保存在内存当中解析Manifest的类是⾮常重要的,该类就是frameworks\base\core\java\android\content\pm\PackageParserPackageManagerService会调⽤PackageParser.parserPackage⽅法来解析APK清单,下⾯开始分析PackageParser的实现:PackageParser是使⽤的XMLPullParser⼯具来对XML进⾏解析的,然后分别通过android.content.pm下各种xxxInfo类来进⾏封装:public Package parsePackage(File sourceFile, String destCodePath,DisplayMetrics metrics, int flags) {//最后要跑出的解析错误信息mParseError = PackageManager.INSTALL_SUCCEEDED;//获得要解析的⽂件的路径mArchiveSourcePath = sourceFile.getPath();//如果要解析的不是⽂件类型就跳过并且返回该⽅法if (!sourceFile.isFile()) {Log.w(TAG, "Skipping dir: " + mArchiveSourcePath);//更新错误信息mParseError = PackageManager.INSTALL_PARSE_FAILED_NOT_APK;return null;}//如果⽂件不是以.apk结尾并且flag没有确定⼀定是APK,那么也返回if (!isPackageFilename(sourceFile.getName())&& (flags&PARSE_MUST_BE_APK) != 0) {if ((flags&PARSE_IS_SYSTEM) == 0) {// We expect to have non-.apk files in the system dir,// so don't warn about them.Log.w(TAG, "Skipping non-package file: " + mArchiveSourcePath);}//更新错误信息mParseError = PackageManager.INSTALL_PARSE_FAILED_NOT_APK;return null;}if ((flags&PARSE_CHATTY) != 0 && Config.LOGD) Log.d(TAG, "Scanning package: " + mArchiveSourcePath);XmlResourceParser parser = null;AssetManager assmgr = null;boolean assetError = true;try {assmgr = new AssetManager();//将⼀个⽂件添加到AssetManager中并返回⼀个唯⼀标识int cookie = assmgr.addAssetPath(mArchiveSourcePath);if(cookie != 0) {//通过标识去AssetManager中找到标识对应资源中的Manifest清单⽂件,并返回⼀个XML的解析器parser = assmgr.openXmlResourceParser(cookie, "AndroidManifest.xml");//⾛到这⾥证明⼀切顺利assetError = false;} else {Log.w(TAG, "Failed adding asset path:"+mArchiveSourcePath);}} catch (Exception e) {Log.w(TAG, "Unable to read AndroidManifest.xml of "+ mArchiveSourcePath, e);}if(assetError) {if (assmgr != null) assmgr.close();mParseError = PackageManager.INSTALL_PARSE_FAILED_BAD_MANIFEST;return null;}String[] errorText = new String[1];Package pkg = null;Exception errorException = null;try {// XXXX todo: need to figure out correct configuration.Resources res = new Resources(assmgr, metrics, null);//这个是真正在解析的package的⽅法,是private methodpkg = parsePackage(res, parser, flags, errorText);} catch (Exception e) {errorException = e;mParseError = PackageManager.INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION; }if (pkg == null) {if (errorException != null) {Log.w(TAG, mArchiveSourcePath, errorException);} else {Log.w(TAG, mArchiveSourcePath + " (at "+ parser.getPositionDescription()+ "): " + errorText[0]);}parser.close();assmgr.close();if (mParseError == PackageManager.INSTALL_SUCCEEDED) {mParseError = PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED; }return null;}parserPackage调⽤了重载的另外⼀个parserPackageprivate Package parsePackage(Resources res, XmlResourceParser parser, int flags, String[] outError)throws XmlPullParserException, IOException {AttributeSet attrs = parser;//每次调⽤这个⽅法时候清空这些变量mParseInstrumentationArgs = null;mParseActivityArgs = null;mParseServiceArgs = null;mParseProviderArgs = null;//这⾥调⽤这个⽅法获得包名String pkgName = parsePackageName(parser, attrs, flags, outError);if (pkgName == null) {mParseError = PackageManager.INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME; return null;}int type;final Package pkg = new Package(pkgName);boolean foundApp = false;//从资源⾥获得AndroidManifest的数组TypedArray sa = res.obtainAttributes(attrs,com.android.internal.R.styleable.AndroidManifest);//继续挖掘出版本号pkg.mVersionCode = sa.getInteger(com.android.internal.R.styleable.AndroidManifest_versionCode, 0);//获取版本名pkg.mVersionName = sa.getNonConfigurationString(com.android.internal.R.styleable.AndroidManifest_versionName, 0);if (pkg.mVersionName != null) {pkg.mVersionName = pkg.mVersionName.intern();}//获得sharedUserIdString str = sa.getNonConfigurationString(com.android.internal.R.styleable.AndroidManifest_sharedUserId, 0);if (str != null && str.length() > 0) {//验证包名是否符合规则String nameError = validateName(str, true);if (nameError != null && !"android".equals(pkgName)) {outError[0] = "<manifest> specifies bad sharedUserId name \""+ str + "\": " + nameError;mParseError = PackageManager.INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID; return null;}pkg.mSharedUserId = str.intern();pkg.mSharedUserLabel = sa.getResourceId(com.android.internal.R.styleable.AndroidManifest_sharedUserLabel, 0);}sa.recycle();//安装的位置pkg.installLocation = sa.getInteger(com.android.internal.R.styleable.AndroidManifest_installLocation,PARSE_DEFAULT_INSTALL_LOCATION);// Resource boolean are -1, so 1 means we don't know the value.int supportsSmallScreens = 1;int supportsNormalScreens = 1;int supportsLargeScreens = 1;int resizeable = 1;int anyDensity = 1;int outerDepth = parser.getDepth();//关键时刻到了,真正的开始解析了while ((type=parser.next()) != parser.END_DOCUMENT&& (type != parser.END_TAG || parser.getDepth() > outerDepth)) {if (type == parser.END_TAG || type == parser.TEXT) {continue;}String tagName = parser.getName();if (tagName.equals("application")) {if (foundApp) {if (RIGID_PARSER) {outError[0] = "<manifest> has more than one <application>";mParseError = PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED;return null;} else {Log.w(TAG, "<manifest> has more than one <application>");XmlUtils.skipCurrentTag(parser);continue;}}foundApp = true;if (!parseApplication(pkg, res, parser, attrs, flags, outError)) {return null;}} else if (tagName.equals("permission-group")) {if (parsePermissionGroup(pkg, res, parser, attrs, outError) == null) {return null;}} else if (tagName.equals("permission")) {if (parsePermission(pkg, res, parser, attrs, outError) == null) {return null;}} else if (tagName.equals("permission-tree")) {if (parsePermissionTree(pkg, res, parser, attrs, outError) == null) {return null;}} else if (tagName.equals("uses-permission")) {sa = res.obtainAttributes(attrs,com.android.internal.R.styleable.AndroidManifestUsesPermission);// Note: don't allow this value to be a reference to a resource// that may change.String name = sa.getNonResourceString(com.android.internal.R.styleable.AndroidManifestUsesPermission_name);sa.recycle();.........................................................................................................................................................篇幅有限这⾥分别把每种不同的element⽤不同的⼩⽅法去解析,他们的调⽤顺序是:这些⼩⽅法⾥其实还是有很多⼩技巧的,有兴趣的话可以细细品位更多关于Android相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家Android程序设计有所帮助。

android应用安装流程

android应用安装流程

CONFIDENTIAL B
8
apk安装位置的决定(1/2)
▪ ID: FAQ08778 应用可以安装在什么地方 ▪ ID: FAQ04297 如何确认一个应用程序的安装 位置 ▪ Apk安装位置决定的code
• PackageHelper.java
▪ resolveInstallLocation
系统应用安装—通过scanPackageLI逐一解 析AndroidManifest.xml文件,建立每个apk 的配置结构,并将apk配置信息添加到全局 列表进行管理。
调用writeLPr()从全局列表中将apk信息写到 packages.xml和packages.list中。
CONFIDENTIAL B
• System app
▪ system/app/[app name]/lib/arm或arm64 ▪ The real lib is under system/lib or system/lib64
• Non-system app
▪ data/app/[package name]/lib/arm或arm64
CONFIDENTIAL B
9
apk安装位置的决定(2/2)
“INSTALL_INTERNAL”:只 能安装在手机内存上 是否有 Install flag? 否

Install flag的 值是什么?
“INSTALL_EXTERNAL”:只 能安装在外部存储上
AndroidManifest.xml installLocation?
• The primary ABI is forced to 32bit ABI when package lib has render script codes

android备份apk安装过程及原理

android备份apk安装过程及原理

Android备份APK安装过程及原理1. 概述Android系统的apk(Android应用程序包)格式是安卓应用程序的标准文件格式,开发者可以将应用程序打包成apk文件,以便用户下载和安装它们。

在某些情况下,您可能需要备份您的应用程序或者安装已经备份的应用程序。

本文介绍了Android备份apk安装的过程和原理。

2. 备份APK的过程2.1 使用Android SDK命令行工具备份使用Android SDK命令行工具可以将安装在设备上的当前应用程序备份到计算机。

以下是备份APK的具体步骤:1.通过USB将设备连接到计算机并启动设备。

2.在计算机上打开命令行提示符或终端窗口。

3.切换到< Android SDK 单目录>\platform-tools目录。

4.在命令行提示符中输入以下命令:adb backup -apk -shared -all -f <文件名>.ab- `-apk` 选项表示将APK文件一起备份到备份文件中。

- `-shared` 选项表示将应用程序的共享存储备份到备份文件中。

- `-all` 选项表示将应用程序的所有数据,包括剪贴板数据、联系人、日历数据等,备份到备份文件中。

- `-f` 选项表示备份文件的名称。

5.摘下USB连接并确保备份文件保存在计算机上。

2.2 使用第三方应用程序备份您可以在Google Play商店或其他来源中下载第三方应用程序,如 Helium或Titanium Backup等,这些应用程序可以让您备份和还原您的应用程序、系统数据和设置等。

以下是使用 Helium 应用程序备份APK的具体步骤:1.在Google Play商店中下载Helium备份应用程序。

2.启动Helium应用程序,并根据提示进行操作以启用USB调试。

3.在备份选项卡中选择您需要备份的应用程序。

4.点击“备份”按钮,Helium将创建备份并保存在设备的内部存储器或SD卡上。

APK

APK
,将apk中的classes.dex转化成Jar文件,再通过jd-gui工具反编译jar文件。
以apkdb编译apk文件为例,只需要在安装apkdb后,直接右击反编译就可以将apk文件反编译出来。
1.使用原生apktool工具,需要将apktool的两个文件释放到window目录下,在cmd中使用 apktool d apk 文件名命令来编译apk文件,此时命令行的执行目录与apk文件所在目录必须一致。
注意:zipalign操作必须且仅在标记apk文件附有个人加密钥之后。如果在标记之前进行zipalign操作,标 记过程将会干扰整理。
谢谢观看
2.首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是 java文件编译再通过dx工具 打包而成的;将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录,运 行。
优化
Android SDK中包含了一个用于优化APK的新工具zipalign,它能够对打包的应用程序进行优化。通过 zipalign优化后的应用程序可使得Android与应用程序间的交互更加有效率。
应用的生命周期
应用的生命周期是由Android OS操作系统进行管理的,活动进程都将做为系统命令进行创建,正确处理这些 事件对一个应用程序来说是极为重要的,因为终端用户不会知道什么是正确的。
apk反编译
反编译工具
Hale Waihona Puke 反编译方法1.最典型的apk编译工具的核心是apktool,但是因为操作需要调用cmd命令,所以出现了很多具有可视化界 面的各种编译工具,像easyapk、apkdb、doapk。
APK
安卓系统应用程序包文件格式

windows下手动打包android程序apk过程详解

windows下手动打包android程序apk过程详解

windows下手动打包android程序apk过程详解备注:android sdk版本不同,安装之后在tools下可能会少dx.bat,apkbuilder.bat文件,通过升级SDK或者单独下载放在对应的目录,也可正常使用;一、手动编译APK的流程如下:1.生成资源文件:使用Android SDK提供的aapt.exe生成R.java 类文件2.编译本地库:使用Android SDK提供的aidl.exe把.aidl转成.java文件(如果没有aidl,则跳过这一步)3.编译java代码:使用JDK提供的javac.exe编译.java类文件生成class文件4.生成dex文件:使用Android SDK提供的dx.bat命令行脚本生成classes.dex文件5.打包资源文件:使用Android SDK提供的aapt.exe生成资源包文件(包括res、assets、androidmanifest.xml等)6.生成apk文件:使用Android SDK提供的apkbuilder.bat生成未签名的apk安装文件7.对apk文件进行签名:使用jdk的jarsigner.exe对未签名的包进行apk签名二、详细步骤1)、准备工作A、安装好JDK,配置环境变量;B、将android-sdk-windows\platform-tools和android-sdk-windows\tools 添加到CLASSPATH 环境变量中;C、打开CMD命令行界面,将当前目录切换到工程所在目录;D、准备一个目录,以下例子是以在eclipse中创建的Android test project项目,名称Test;2)生成资源文件,使用aapt生成R.java类文件,aapt所在路径android-sdk-windows\platform-tools\aapt.exe:E:\Users\Administrator\workspace\Test>aapt package -f -m -J gen -S res -M AndroidManifest.xml -I E:\android-sdk_r23.0.2-windows\android-sdk-windows\platforms\android-18\android.jar说明:-f -m -J gen 代表按覆盖的形式在gen目录下生成带包路径的R.java;-f force overwrite of existing files;-m make package directories under location specified by -J -J specify where to output R.java resource constant definitions-J后面跟的是生成目录;-S后面跟的是资源目录;-M后面跟的是AndroidManifest.xml;-I后面跟的是使用的AndroidAPI的jar;3)javac.exe编译.java类文件生成class文件,javac所在路径C:\Program Files\Java\jdk1.6.0_43\bin\javac.exeE:\Users\Administrator\workspace\Test>javac -encoding utf-8 -target 1.6 -d bin -bootclasspath E:\android-sdk_r23.0.2-windows\android-sdk-windows\platforms\android-18\android.jar gen\android\support\v7\appcompat\test\*.java src\android\support\v7\appcompat\test\*.java说明:-target:jdk版本;-d:指定生成的class类文件存放的位置;-bootclasspath:覆盖引导类文件的位置;-encoding:后面跟字符编码,避免出现乱码;4)使用dx.bat命令行脚本生成classes.dex文件,dx.bat所在路径android-sdk-windows\tools\dx.batE:\Users\Administrator\workspace\Test>dx.bat --dex --output=E:\Users\Administrator\workspace\Test\bin\classes.dex E:\Users\Administrator\workspace\Test\bin\classes说明:--output:生成的dex文件存放路径;最后带上class文件所在目录,不需要加包目录5)使用aapt.exe生成资源包文件,aapt.exe所在路径android-sdk_r23.0.2-windows\android-sdk-windows\platform-tools\aapt.exeE:\Users\Administrator\workspace\Test>aapt.exe package -f -M AndroidManifest.xml -S res -A assets -I E:\android-sdk_r23.0.2-windows\android-sdk-windows\platforms\android-18\android.jar -F bin\resourcesLater说明:-S:资源目录;-M:AndroidManifest.xml文件;-I:导入用的jar文件;-F:后面跟生成的资源文件存放位置,生成的资源文件名是自己新建的6)使用apkbuilder.bat生成未签名的apk安装文件,apkbuilder.bat所在路径android-sdk_r23.0.2-windows\android-sdk-windows\tools\apkbuilder.bat。

android备份apk安装过程及原理

android备份apk安装过程及原理

android备份apk安装过程及原理Android备份:APK安装过程及原理分类:Android初级2011-08-12 22:54 364人阅读评论(0) 收藏举报来自华为内部资料应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。

APK是Android Package的缩写,即Android安装包。

APK 是类似Symbian Sis或Sisx的文件格式。

通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

Android应用安装有如下四种方式1. 系统应用安装――开机时完成,没有安装界面2. 网络下载应用安装――通过market应用完成,没有安装界面3. ADB工具安装――没有安装界面。

4. 第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面。

应用安装的流程及路径应用安装涉及到如下几个目录:system/app系统自带的应用程序,无法删除data/app用户程序安装的目录,有删除权限。

安装时把apk文件复制到此目录data/data存放应用程序的数据Data/dalvik-cache将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)安装过程:复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。

卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。

一、系统应用安装:PackageManagerService处理各种应用的安装,卸载,管理等工作,开机时由systemServer启动此服务(源文件路径:android\frameworks\base\services\java\com\android\server\Pack ageManagerService.java)PackageManagerService服务启动的流程:1. 首先扫描安装“system\framework”目录下的jar包1.scanDirLI(mFrameworkDir,PackageParser.PARSE_IS_SYSTE M,scanMode | SCAN_NO_DEX);2.第二步扫描安装“system\app”目录下的各个系统应用scanDirLI(mSystemAppDir,PackageParser.PARSE_IS_SYSTE M, scanMode);3.第三步扫描“data\app”目录,即用户安装的第三方应用scanDirLI(mAppInstallDir, 0, scanMode);4.第四步扫描" data\app-private"目录,即安装DRM保护的APK文件(目前没有遇到过此类的应用)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android程序安装包APK的制作
完成Android项目后,需要将程序打包成APK文件(Android Package),其后缀名为".apk"。

打包的APK 文件可以在Android模拟器或者Android手机上安装运行。

Android系统要求具有开发者签名的私人密钥的应用程序才可以被安装。

Android项目打包和生成数字签名可以使用命令行的方式,但Eclipse中的向导可以方便快捷的完成整个流程。

以HelloWorld为例,介绍如何生成APK。

Android项目编译运行后,右键单击项目名称,选择"Android Tools",再选择"Export Signed Application Package..."(输出签名的应用程序包)。

直接点击Next按钮,进入Keystore设置窗口。

其中,Location为证书的目录地址,Password/Comfirm 为证书的密码。

打包程序时系统要求使用数字证书。

如果没有数字证书,选择"Create new keystore",设置目录地址和密码,创建新的数字证书。

点击Next按钮,设置证书的信息。

Alias:数字证书的名称;Password/Comfirm:证书的密码;Validity(years):证书的有效期;其他信息按需要填写。

完成证书信息设置后点击Next按钮,完成APK打包,如下图所示,生成的APK文件为:E:\Android\keystore\HelloWorld.apk。

如果已有数字证书,可以选择"Use existing keystore",然后点击Browser按钮进行选择,输入密码后点击Next按钮进行下一步。

如果没有数字证书,选择"Create new keystore",设置目录地址和密码,创建新的数字证书。

同样,生成APK文件E:\Android\keystore\HelloWorld.apk。

相关文档
最新文档