网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月21日漏签0天
安卓百科吧 关注:1,742贴子:9,171
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 29回复贴,共2页
  • ,跳到 页  
<<返回安卓百科吧
>0< 加载中...

apk编程及apk的相关知识了解

  • 只看楼主
  • 收藏

  • 回复
  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
APK是AndroidPackage的缩写,即Android安装包(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字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
文件结构
1. META-INF\ (注:Jar文件中常可以看到);
2. res\ (注:存放资源文件的目录) ;
3. AndroidManifest.xml (注:程序全局配置文件) ;
4. classes.dex (注:Dalvik字节码);
5. resources.arsc (注:编译后的二进制资源文件)。I


2026-06-21 00:49:26
广告
不感兴趣
开通SVIP免广告
  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
了解APK
在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
开发环境
Android是一个基于Java的开发环境,它是一种与广被接受的 Java极为类似,而且也比C++容易的多的开发语言,这将一种移动开发的规范。Google也在API文档的书写和样例的提供上做了很出色的工作。
*****************************************************************************************************
获取SDK
下载并安装android的SDK[软件开发套件],这套SDK主要包括有核心库文件,一个模拟器,开发工具和一些示范的样例文件。推荐使用Eclipse 和 android eclipse 扩展。如果只是使用android,Eclipse IDE就已经足够了,但如果是第一次开发Java应用,建议下载完整的Java SE 开发工具 (JDK) 因为它包括签发应用程序所需要的工具。
Android 4.0 SDK今日正式发布,大家可以在 http://dl.google.com/android/installer_r14-windows.exe 直接使用这个工具下载,当然如果你已经有早期版本的SDK,在SDK Manager中检查更新即可。Android 4.0 SDK包含了最新的模拟器、开发文档和代码示例I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
应用架构
android 应用架构很关键,如果不学习它,设计出来的游戏将是一种很难修复bug的产品。 需要了解应用程序、活动、Intents以及它们是如何互相联系交互的,Google在这儿提供了良好的信息架构。真正重要的是,要理解为什么在设计的游戏中需要不止一个的活动进程以及如何设计一个用户体验良好的游戏。这些都应当配合到应用的生命周期中。I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
应用的生命周期
应用的生命周期是由AndroidOS操作系统进行管理的活动进程都将做为系统命令进行创建,正确处理这些事件对一个应用程序来说是极为重要的,因为终端用户不会知道什么是正确的。最好在开始设计游戏之前搞明白这些,因为这有助于节省调试时间以及避免代价高昂的重新设计。对大多数应用而言,默认设置即可开始工作,但对游戏而言,可能需要调整单态实例的信号为打开。在默认情况下,Android会新建一个活动实例进程,因为它认为这是比较合适的,而游戏,可能只希望有一个活动的实例进程,这有一点儿影响,它需要了解一些系统状态的管理。
*****************************************************************************************************
apk反编译
apk反编译就是通过使用apk编译工具将apk文件中的源文件和资源反编译出来,得到的源文件和资源文件可以进行处理后再进行编译,以达到个性化定制,汉化apk等目的。
*****************************************************************************************************
apk反编译工具
最典型的apk编译工具的核心是apktool,但是因为操作需要调用cmd命令,所以出现了很多具有可视化界面的各种编译工具,像easyapk,apkdb,doapk
*****************************************************************************************************
apk编译方法
使用apkdb编译apk文件只需要在安装apkdb后直接右击反编译就可以将apk文件反编译出来 使用原生apktool工具,需要将apktool的两个文件释放到window目录下,在cmd中使用 apktool d apk文件名 命令来编译apk文件,此时命令行的执行目录与apk文件所在目录必须一致。
*****************************************************************************************************
安装Android 4.0 SDK后有 AVD Manager 和 SDK Manager
AVD的全称为:Android Virtual Device,就是Android运行的虚拟设备,
他是Android的模拟器识别。建立的Android要运行,必须创建AVD,每个AVD上可以配置很多的运行项目。
创建AVD的方法又两种。一是通过eclipse开发环境,二是通过命令行创建。
Eclipse开发环境创建: 选择EclipseI


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
菜单中Windows菜单下的Android AVD Manager. 在name中输入AVD的名称,Target中选择我们使用的类库(Android 1.1、Android1.5或者Google APIs 1.5),创建SDCard和皮肤,点击Finish按钮就可以了。
命令行创建: 在命令行方式中找到Tools的路径,输入命令:android create avd --target 2 --name my_avd 其中android是命令,后面是参数,Create avd是创建AVD,target 2是等级,name是Avd的名称。I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如何修改APK文件(删除广告等)
阅读人数:1779人页数:5页
如何修改apk文件?比如说:对英文版进行汉化、美化、修改功能、图标、修改文字描述、去掉广告等等。本文介绍APK的基本知识、结构、APK文件的解包、打包及签名,以及对APK文件的常规修改。其实很简单,稍嫌麻烦的请绕道。
教程如下:
一、首先搭建jdk环境。(这里下载)
下载完后,点击安装。然后设置运行环境参数:
用鼠标右击“我的电脑”->属性->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:D:\Program
Files\Java\jdk1.7.0(这是我的安装路径这个不是固定的,比如你安装到
C:\Program Files,就填C:\Program Files\Java\jdk1.7.0)
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;(若已经有Path项,无须另外新建,直接在后面加,但需用;与前面已有的项分隔开)
系统变量->新建->变量名:CLASSPATH 变量值:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
最后测试下环境变量是否设置成功
点开始菜单-运行-在这里输入cmd-回车-输入javac
1.如果出现如下信息:
用法:javac <选项> <源文件>
其中,可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件的位置
-cp <路径> 指定查找用户类文件的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖安装的扩展目录的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置I


2026-06-21 00:43:26
广告
不感兴趣
开通SVIP免广告
  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
-d <目录> 指定存放生成的类文件的位置
-encoding <编码> 指定源文件使用的字符编码
-source <版本> 提供与指定版本的源兼容性
-target <版本> 生成特定 VM 版本的类文件
-version 版本信息
-help 输出标准选项的提要
-X 输出非标准选项的提要
-J<标志> 直接将 <标志> 传递给运行时系统
恭喜,你的Java环境变量配置成功了!
2.如果出现:
'javac' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
说明这Java环境变量配置出错了,仔细检查下吧!
二、下载APKTools工具包(里面包含:APKTools反编译工具、APKSign签名工具)。下载Notepad代码编辑器(可以修改smali和xml文件)。
在修改之前首先对APK文件内部结构有个了解:
AndroidManifest.xml 程序全局配置文件
classes.dex 这是Dalvik字节码
resources.arsc 编译后的二进制资源文件
META-INF\ 该目录下存放的是签名信息
res\ 该目录存放资源文件
assets\ 该目录可以存放一些配置文件
对应这些文件和目录做些基本的注释和介绍:
? AndroidManifest.xml
该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。需要解包后才能加以阅读。
? classes.dex文件
classes.dex是java源码编译后生成的java字节码文件。dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
? resources.arsc
编译后的二进制资源文件。I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
? META-INF目录
META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。
? res目录
res目录存放资源文件。包括图片,字符串等等。
解包后,几乎所有可能的修改和编辑工作基本都在这里。
? assets目录
assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。
APK文件修改,首先要对APK文件解包(也就是反编译),打开apktool.exe,如图:I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
左边APK反编译区,选择APK文件,选择文件保存目录,点反编译APK按钮,得到解包文件。
三、开始修改
1. 如果只是对图像进行替换,没有必要进行解包和打包。用WinRAR打开APK文件,直接做替换就可以了。但是,如果要对文字和其它非图像类内容进行修改,


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
那只能通过解包了,改好后,再编译回来,最后签名才能放进手机安装。下面介绍几个对APK进行解包和打包的案例。
2. 汉化APK软件
在res文件夹中,我们可以看到有很多values-***的文件夹,这就是语言包。values是英文语言包,values-zh是中国地区语言包(包含港澳台及内地),
values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。除此以外,其它地区的语言包都是精简的对象,可以不过多了解。
在values文件夹里,通常有arrays.xml、strings.xml等语言文件,要作汉化就要对这些文件进行修改。有时也需要修改其它xml文件,一个一个地认真查看。改好后,打包,签名,OK。
3. 修改桌面图标名称(标签)
每一个APK文件都有一个“图标标签”。将APK程序安装进手机后,在图标下面显示图标标签文字。这个图标标签的内容是可以修改的。在\res\values下找到strings.xml,修改其中的一行:
图标标签
例如:静音启动
同理,如果是窗口小插件,要修改widget_name。
注意:system/app下的apk不宜修改,因为要同时修改对应的odex文件。 改好后,打包,签名,OK。
4. 去掉APK中的广告
有很多APK应用都带有广告。为了去掉程序中的广告,要修改main.xml文件与广告有关的内容。在\res目录下找到文件main.xml。通常在\layout目录下,有时也被放在其它目录下。甚至,有时不存在main.xml文件,广告行被放在其它xml文件内。只能细心逐个文件进行查找。无论哪一种情况,查看其内容,你会看到有一项类似的命令如下。这就是广告显示。
将其改为:
可以看到,关键是要把fill_parent改为0.0dip,把wrap_content改为0.0dip,其它保持不变即可。这种改法就是不给广告显示空间,当然你就看不到广告了。 改好后,打包,签名,OK。
5. 修改显示电池为1%精度
在XT502上,默认显示只有7档: 0%,10%,20%,40%,60%,80% 和100%。通过修改framework-res.apk,可以改变显示精度。但是在一些手机上,实践证明最好可能达到的现实精度只有10%。修改工作如下:
(1) 对framework-res.apk进行解包I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
(2) 修改和增加电池状态图标
(3) 修改文件stat_sys_battery.xml
(4) 修改文件stat_sys_battery_charge.xml
(5) 打包
(6) 提取stat_sys_battery.xml,stat_sys_battery_charge.xml,resources.arsc和一个图标目录:drawable-mdpi
(7) 重新装配framework-res.apk
6. 状态栏信息通知文字颜色修改
状态栏信息通知文字颜色,是由framework-res.apk文件里res\values下的
colors.xml文件控制的,所以我们只需修改colors.xml文件就可以了。另外,此文件还控制下拉栏的文字颜色,可以修改。
用文本编辑器打开colors.xml文件,找到
#ff000000
将这句修改为:#ffffffff
这状态栏信息通知文字颜色由黑色改为白色。
改好后,打包,签名,OK。I


  • 陈都灵
  • 贴吧版主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不知道发的有么有用@_@


2026-06-21 00:37:26
广告
不感兴趣
开通SVIP免广告
  • 我得写作业
  • 闻名而来
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
很赞,虽然是挖坟,但实在忍不住顶一个


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 29回复贴,共2页
  • ,跳到 页  
<<返回安卓百科吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示