导航:首页 > 源码编译 > android源码打包成apk原理

android源码打包成apk原理

发布时间:2023-06-10 20:01:41

① 用1个android软件的源码如何做成apk安装包


你再看bin下面会有个.apk

② 安卓手机用java来开发。但是扩展名并非JAR,而是APK为什么

因为android使用的Java语言只能算一种非正式的“方言”变种。
只在语言层面用了Java的语法,并没有用Java的平台。
android不遵守JCP的各项JSR标准,没有通过oracle的平台测试包测试并获得认证,也就不能称之为“java”。进一步不能使用任何Java商标。
android没有发布语言标准,只能看成约等于Java 5.0的语法。
由Google一家来决定android的开发的语法和api,比Java平台来说要相对封闭。
从标准化的角度,属于退步。但android的开源免费弥补了一些标准不足。

平台方面,类库是继承Apache Harmony针对Java 5的库。虚拟机用的google自己开发的dalvik虚拟机。和JVM不同,android的java代码被编译成class字节码后还要再次编译成dex的字节码,再打包成APK由dalvik虚拟机执行。执行时不再是java的bytecode,用的完全不同的dalvik字节码指令语言。执行JAR需要符合Java标准的平台,而android平台不符合任何java标准,所以android环境也就不能直接执行JAR。

③ Android 将 apk 反编译为源码

将 apk 解压,在解压后的文件夹中可以找到 classes.dex 文件。(除了 classes.dex 文件,可能还会有 classes2.dex , classes3.dex 等等,本文以 classes.dex 为例,对其他几个 dex 文件的操作是类似的)

使用 dex2jar 工具,将 dex 文件转换为 jar 文件

使用方式:

执行命令后,生成的 classes-dex2jar.jar 就是我们需要的 jar 文件。

使用 Luyten 工具查看 jar 文件,就能看到反编译后的源码了。

本例中, classes.dex 文件中存储的是 android 的一些基础库,实际编写的源码在 classes3.dex 中,对 classes3.dex 执行第二步,查看生成的 classes3-dex2jar.jar 文件,可以看到如下内容:

这就是反编译 apk 的基本操作了。

Cmder 是一个非常好用的命令行工具。

效果如下:

只需要执行 apk2jar 命令,就可以实现把 apk 解压到 apk_ 文件夹中,并将 apk_ 文件夹中的 classes.dex 文件转换为 jar 。原理就是通过 Cmder 添加别名,把上述的第一步和第二步中执行的命令行组合起来了。

为 Cmder 添加别名很简单,编辑 Cmder安装目录\config\user_aliases.cmd 文件,将别名添加到里面即可。本例添加的别名如下:

其中:

④ 如何用Android 源码生成APK签名文件

我们很多应用需要用到系统签名,可以通过生成系统签名文件,在生成apk时使用这个签名,然后可以安装到机器中,不需要放在源码里编译,重新刷系统。

先附上 50和 20机器人通用的debugkey(图已经省略)

在Linux环境中,以Android源码目录为根目录。

其中的platform.pk8是制作系统签名需要的文件。

1、在这个目录下,执行

生成临时文件platform.pem

2、接着执行以下命令,将在目录下生成platform.p12文件,它本质上应该就是一个数字证书

3、然后再执行以下命令出现以下信息,表示成功生成platform.jks

这个名字可以改成debug.keystore. 它的后缀本身是没有关系,eclipse和AS都识别 platform.jks

4、然后在打包 apk 的时候选择platform.jks文件,就可以直接用adb命令安装apk到机器中了。

xxxx表示需要安装的apk路径
5、签名的 Key store password和Key password都是android

⑤ Android下怎么将JAVA打包成apk

将你的java代码放到一个Android工程里去
之后在某个Activity或者Service里调用就行了
只有Android工程才导出apk的

⑥ android 工程 如何一键编译打包成apk

打包步骤:

1、生成keystore

按照下面的命令行在C:ProgramFilesJavajdk1.6.0_10in>目录下,输入keytool-genkey-aliasandroid.keystore-keyalgRSA-validity100000-keystoreandroid.keystore

参数意义:-validity主要是证书的有效期,写100000天;空格,退格键都算密码。

命令执行后会在C:ProgramFilesJavajdk1.6.0_10in>目录下生成android.keystore文件。如图-1

图-2EclipseAndroid打包工具

接下来的步骤就是不断的next。下面仅贴出图片,不解释。

step2:选择打包的项目

step3:选择生成的EclipseAndroid.keystore文件并输入密码

step4:选择aliaskey并输入密码

step5:最后选择生成androidapk文件的目录及文件名

最终生成的apk文件。

⑦ 网上下的APP源码,问问大佬怎么变成APK格式

到网上搜索下安卓开发环境搭建,用eclipse打开这个文件夹运行编译就可以了。

⑧ 怎么把Android工程打包成apk

你好
第一步,把普通的android project设置成库项目
库项目也是一个标准的android项目,因此你先创建一个普通的android项目。 这个项目可以起任何的名称,任何的报名,设置其他需要设置的字段等,如图1所示。
接着把项目设置成库项目,步骤如下
在Package Explorer中, 鼠标右键项目文件夹,点击 Properties.
在Properties 窗口, 选择"Android" ,Library 属性显示在右下边.
把"is Library" 单选框选择上,再点击 Apply.
点击 OK 关闭Properties 窗口.
这时,这个项目就变成库项目了。
当然,java项目也可以让其变成一个库项目,非常简单,执行上面的四步。其他程序项目就可以引用库项目了。
图 1.使一个项目为库项目
创建manifest文件
一个库项目的manifest文件也和标准的android应用程序一样,声明所有共享的组件。
比如APIDemo中的TicTacToeLib 这个例子,库项目声明了Activity GameActivity:
<manifest>
...
<application>
...
<activity android:name="GameActivity" />
...
</application>
</manifest>

第二步 引用库项目
如果你开发的应用程序想要包括库项目中的代码和资源,非常简单,引用步骤如下

在Package Explorer中, 鼠标右键项目文件夹,点击 Properties.
在Properties 窗口, 选择"Android" ,Library 属性显示在右下边.
点击Add ,打开了Project Selection 对话框.
从可用库项目列表选择一个项目,然后点击 OK.
对话框关闭之后点击 Apply (在Properties 窗口).
点击 OK 关闭Properties 窗口.

完成以上六步,Eclipse 会重建项目,把库项目中的内容包含进去。 如图2所示
图 2. 让项目引用一个库项目
如果你想增加多个库项目的引用,使用up和down可以设置他们的相对的优先级和合并顺序。工具在合并引用的库的时候顺序是从低优先级(列表的下面)到高优先级(列表的上面)。 如果不只一个库定义了相同的资源ID,这个工具选择资源时会选择高优先级的资源。应用程序自身拥有最高的优先级,自身的资源zThe application itself has highest priority and its resources are always used in preference to identical resource IDs defined in libraries.

在menifest文件中声明库中的组件
在manifest 文件中必须增加对在当前程序中用到的库项目中的所有的组件 。比如,你必须声明任何用到的 <activity>, <service>, <receiver>, <provider>等,<permission>, <uses-library>, 和其他类似的元素。
声明库项目中的组件时,必须使用包含包名的类全名。
在TicTacToeMain 例子中,声明库Activity GameActivity :

<manifest>
...
<application>
...
<activity android:name="com.example.android.tictactoe.library.GameActivity" />
...
</application>
</manifest>

For more information about the manifest file, see the documentation for AndroidManifest.xml.
望采纳祝你好运

阅读全文

与android源码打包成apk原理相关的资料

热点内容
dvd光盘存储汉子算法 浏览:758
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:383
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163