我想要制作简单的apk文件,需要什么文件,以及怎样如何编译github源代码源代码,最后整合成apk?

apk是什么文件、Android文件中怎么反编译?_西西软件资讯
西西软件下载最安全的下载网站、值得信赖的软件下载站!
→ apk是什么文件、Android文件中怎么反编译?
V1.0官方安版
类型:手机工具大小:2.5M语言:中文 评分:6.6
apk即Android安装包,通过将APK文件直接传到或Android手机中执行即可安装。安卓Android的软件安装包以.apk为文件扩展名,其文件格式是标准的.zip文件,可以通过WinZIP、等文件工具直接打开,或是在.apk文件名上添加.zip后缀,即可查看封装在其中的具体文件内容,包括程序、图片、配置文件等。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文件有区别。安装安卓软件INSTALL_FAILED_CPU_ABI_INCOMPATIBLE的解决方法具体方法如下:安装apk文件到模拟器或者手机上时报:Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE这个错误,Google下说是由于引用了其他非android的sdk编译环境编译的二进制代码导致的,然后就把引用的jar换成android环境编译导出,但是还是报错,最后发现是因为引用的jar文件里的lib目录里还引用其他jar导致,把lib里的jar拿出来放到项目的buildpath里即可解决,不要引用的jar里再嵌套引用jar那样就会有报错。如果因为引用的jar文件里的lib目录里还引用其他jar导致,把lib里的jar拿出来放到项目的buildpath里即可解决,不要引用的jar里再嵌套引用jar那样就会有报错。Android反编译一、Apk反编译得到Java源代码下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码。
类别: 反编译(译逆工程) &&&大小:779KB &&&语言: 中文
具体步骤:首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。在命令行下定位到dex2jar.bat所在目录,运行dex2jar.bat classes.dex生成classes_dex2jar.jar然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了,如下图:HelloAndroid源码在反编译前后的对照如下:二、apk反编译生成程序的源代码和图片、XML配置、语言资源等文件如果是汉化软件,这将特别有用首先还是要下载上述反编译工具包,其中最新的apktool,请到google code下载apktool(google code)具体步骤:下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exe,apktool.bat,apktool.jar 注:里面的apktool_bk.jar是备份的老版本,最好用最新的apktool.jar在命令行下定位到apktool.bat文件夹,输入以下命令:apktool.bat d -f abc123.apk abc123,如下图:上图中,apktool.bat 命令行解释:apktool.bat d -f [apk文件 ] [输出文件夹]反编译的文件如下(AndroidManifest.xml为例):将反编译完的文件重新打包成apk,很简单,输入apktool.bat b abc123(你编译出来文件夹)即可,命令如下:打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:builddist其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok三、 图形化反编译apk上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk
(13) 相信经常玩安卓游戏或者安卓应用的对于这一格式的文件很熟悉了吧,文件即安装包。是类似或的文件格式。通过将文件直接传到模拟器或手机中执行即可安装。西西本页提供安装器电脑版下载大全,,安装器版有哪些,,豌豆荚应用宝电脑版手机助手电脑版百度手机助手电脑版金山手机助手版,,文件结构文件中常可以看到存放资源文件的目录.程序全局配置文件.字节码.编译后的二进制资源文件...
08-26 / 19.3M
推荐理由:通过PC版百度手机助手与手机连接,即可在电脑、手机上同步管理应用,软件左侧设置了“我的手机、应用管理、
01-29 / 33.9M
推荐理由:豌豆荚手机精灵PC客户端。豌豆荚手机精灵是一款针对android系统手机的pc管理工具。当您把手机和电脑连接上后
04-19 / 15.3M
推荐理由:360手机助手的2.0版正式发布啦~在闭关的这段日子里,我们不但为她换了身绿色的新衣服,加快了她的启动速度
01-28 / 32.3M
推荐理由:腾讯手机管家电脑版正式更名为"应用宝",腾讯此举将原先的应用宝和腾讯手机管家相结合,为用户全新打造pc软
11-09 / 66.1M
推荐理由:金山手机助手愿意成为每一个用户的贴心助手,找靠谱应用,上金山手机助手!找热门游戏,上金山手机助手!正
04-15 / 937KB
推荐理由:飞扬APK安装器是电脑端安卓软件安装器,通过软件,你可以把下载到电脑上的apk安卓安装程序安装到手机上。
02-2801-1901-1512-2012-0710-3103-2202-2905-2209-16
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载Android的APK源代码在Android系统源代码停的编译方法 - Android当前位置:& &&&Android的APK源代码在Android系统源代码停的编译方法Android的APK源代码在Android系统源代码停的编译方法&&网友分享于:&&浏览:6次Android的APK源代码在Android系统源代码下的编译方法Android的APK源代码在Android系统源代码下的编译方法
如果你写了一个APK程序, 并且使用了第三方JAR数据包, 想把源代码放到Android系统源代码下编译, 请尝试以下过程.
A.&&&&&将源代码复制到目录X:\Android\packages\apps\MyApp
B.&&&&&在MyApp目录下创建Android.mk文件, 内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(callall-java-files-under, src)
# Added for source code compilestart 为jar起一个别名
LOCAL_STATIC_JAVA_LIBRARIES:=
3rdpartlib1 3rdpartlib2 3rdpartlib33rdpartlib4
LOCAL_PACKAGE_NAME := MyApp
# Added for source code compileend
# LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
# Added for source code compilestart 冒号前面为jar别名,后面为jar文件的实际路径
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:= 3rdpartlib1:jars/mons.codec-1.7.0.jar 3rdpartlib2:jars/org.knopflerfish.bundle.kxml-LIB-2.3.0.jar3rdpartlib3:jars/osgi.cmpn-4.3.0.jar 3rdpartlib4:jars/osgi.core-4.3.0.jar
include $(BUILD_MULTI_PREBUILT)
# Added for source code compileend
# Use the folloing include to makeour test apk.
include $(callall-makefiles-under,$(LOCAL_PATH))
C.&&&&&回到Android系统源码目录下,
执行source/build/envsetup.h, 将会产生很多新的命令, 如mmm
D.&&&&执行mmm&packages/apps/MyApp
E.&&&&&最后生成的APK文件位置在:
X:\Android\out\target\product\rk30sdk\system\app
mm:&Builds&all&of&the&modules&in&the&current&directory.
mmm:&Builds&all&of&the&modules&in&the&supplied&directories.
4.关于drawable
使用mmm编译方法编译自己apk时,没有将drawable的所有资源都编译到apk中,可以在&androidsrc/build/target/product/generic.mk文件末尾增加以下最后一句:
1 # Overrides
2 PRODUCT_BRAND := generic
3 PRODUCT_DEVICE := generic
4 PRODUCT_NAME := generic
5 PRODUCT_LOCALES += xhdpi hdpimdpi ldpi
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有10891人阅读
日11:27:34 更新:
最新的反编译不用此方法, 有最新的一键自动反编译工具:
下载地址:(日19:13:47)
http://download.csdn.net/detail/wed110/7472543
对于初学者 下面的内容还是挺有用的哦&http://blog.csdn.net/sunboy_2050/article/details/6727581
不知道为什么图片无法显示
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。
在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。
注:本Android反编译教程,在Windows7-Ultimate-64bit操作系统上,测试通过!
下述所需的反编译工具包&
一、反编译Apk得到Java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者dex2jar是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:
具体步骤:
首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录(在DOS命令下CD 目录)
dex2jar.bat&&& classes.dex
classes.dex.dex2jar.jar
生成jar文件的截图如下:
运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了
HelloAndroid源码(编译前的apk源码对照)如下:
二、反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
如果是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool
下载地址:
下载:&和&(两个包都下载)
具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
在命令行下定位到apktool.bat文件夹,输入以下命令:apktool d C:\*.apk C:\*文件夹,如下图:
命令行解释:apktool&&d&& [apk文件 ]&& [输出文件夹]
反编译的文件如下(AndroidManifest.xml为例):
特别注意:你要反编译的文件一定要放在C盘的根目录里(其实不用放在C盘根目录也行)
例如:在D盘目录D:\apktool1.4.1
cd & /d &&D:\apktool1.4.1&&&&&&&&&&&&&&&& //切换到D盘目录,包含HelloAndroid.apk以及aapt.exe,apktool.bat,apktool.jar三个文件
apktool.bat &d &-f &HelloAndroid.apk & HelloAndroid & & & & // apktool反编译命令,注意 d和
将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可,命令如下:这个主意你文件所在盘
打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:
其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok
最后,再介绍一款刚出来的反编译工具&Androidfby ,它是一款对上述步骤进行了封装的图形界面工具,
但是,针对部分签名的apk,无法实现反编译,但本博客方法则仍然可以反编译成功!仅供参考使用
另外,作为应用开发者,肯定不希望自己的代码被反编译的,下一遍将讲述如何通过混淆代码防止被别人反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。
Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹
proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。
下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows\tools\lib\proguard.cfg的内容:
1.& -optimizationpasses&5&&
<span style="color:#.&-dontusemixedcaseclassnames&&
3.&-dontskipnonpubliclibraryclasses&&
<span style="color:#.&-dontpreverify&&
5.&-verbose&&
<span style="color:#.&-optimizations&!code/simplification/arithmetic,!field/*,!class/merging/*&&
<span style="color:#.&-keep&public&class&*&extends&android.app.Activity&&
9.&-keep&public&class&*&extends&android.app.Application&&
<span style="color:#. -keep&public&class&*&extends&android.app.Service&&
11. -keep&public&class&*&extends&android.content.BroadcastReceiver&&
<span style="color:#. -keep&public&class&*&extends&android.content.ContentProvider&&
13. -keep&public&class&*&extends&android.app.backup.BackupAgentHelper&&
<span style="color:#. -keep&public&class&*&extends&android.preference.Preference&&
15. -keep&public&class&com.android.vending.licensing.ILicensingService&&
<span style="color:#. &&
17. -keepclasseswithmembernames&class&*&{&&
<span style="color:#. &&&&native&&methods&;&&
<span style="color:#. &&
21. -keepclasseswithmembernames&class&*&{&&
<span style="color:#. &&&&public&&init&(android.content.Context,&android.util.AttributeSet);&&
<span style="color:#. &&
25. -keepclasseswithmembernames&class&*&{&&
<span style="color:#. &&&&public&&init&(android.content.Context,&android.util.AttributeSet,&int);&&
<span style="color:#. &&
29. -keepclassmembers&enum&*&{&&
<span style="color:#. &&&&public&static&**[]&values();&&
31. &&&&public&static&**&valueOf(java.lang.String);&&
<span style="color:#. }&&
<span style="color:#. -keep&class&*&implements&android.os.Parcelable&{&&
35. &&public&static&final&android.os.Parcelable$Creator&*;&&
<span style="color:#. }&&
从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService,
并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数&#26684;式的构造函数,枚举等等。(详细信息请参考&proguard_path&/examples中的例子及注释。)
让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了
完整的default.properties文件应该如下:
1.& #&This&file&is&automatically&generated&by&Android&Tools.&&
<span style="color:#.&#&Do&not&modify&this&file&--&YOUR&CHANGES&WILL&BE&ERASED!&&
<span style="color:#.&#&This&file&must&be&checked&in&Version&Control&Systems.&&
<span style="color:#.&#&To&customize&properties&used&by&the&Ant&build&system&use,&&
7.&#&&build.properties&,&and&override&values&to&adapt&the&script&to&your&&
<span style="color:#.&#&project&structure.&&
<span style="color:#. #&Project&target.&&
11. target=android-9&&
<span style="color:#. proguard.config=proguard.cfg&&
大功告成,正常的编译签名后就可以防止代码被反编译了。反编译经过代码混淆的apk得到的代码应该类&#20284;于下面的效果,是很难看懂的:
如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:222398次
积分:3043
积分:3043
排名:第7374名
原创:88篇
转载:42篇
评论:29条
(1)(2)(2)(2)(2)(5)(7)(2)(11)(5)(6)(5)(7)(11)(6)(13)(10)(2)(2)(3)(3)(2)(1)(2)(1)(18)(8)

我要回帖

更多关于 c语言编译器源代码 的文章

 

随机推荐