首页 养生问答 疾病百科 养生资讯 女性养生 男性养生

Android App打包是怎么回事

发布网友 发布时间:2022-04-21 18:59

我来回答

4个回答

热心网友 时间:2022-05-16 15:47

Android App打包指的是将APP源码压缩成一个apk包的过程,具体步骤如下。

工具:eclipse

在eclipse中,工程上“右键”->导出。

让选择需要打包的工程,直接“Next”,到keystone页面


接下来填写证书信息


根据自己的情况填写,点击“Next”,生成keystore,到下一页面:

选择APK文件生成的位置,点击Finish,完成,把apk文件安装到手机上运行看是否正常运行。至此,全部结束!

热心网友 时间:2022-05-16 15:47

步骤如下:
在Android上,我们可以基于android.webkit.WebView作为应用的main view来产生一个应用程序,并让此WebView在应用启动时加载指定的网页,这样就构建了一个基于Android的WebApp。
对于Android, Sencha的phonegap也是基于此方法对网页程序进行打包的,下载phonegap后,其主要包括二个文件:
1、phonegap.0.9.4.jar
此jar文件中包含了类DroidGap,其对Activity及WebView进行了适当的封装,可以让用户更方便地进行打包。
更主要的功能是能实现的多个Webkit的plugin, 通过这些plugin可以在javascript中直接调用android的一些系统功能,比如得到设备的信息如屏幕大小,系统版本号等,还有打电话,发送短信,写本地文件等一系列功能。
2、phonegap.0.9.4.js
此js文件作了更高层次的封装,以便于在javascript中更方便地调用所增加的plugin的功能。比如在js中直接调用:
navigator.notification.vibrate(0)可以直接让手机进行振动
而navigator.notification.beep(2)可以让手机Beep二声
以下尝试一个最简单的例子(也可以参见phonegap中自带的一个例子):
(1)java源代码文件: Sample.java
package com.phonegap.Sample; import android.app.Activity; import android.os.Bundle; import com.phonegap.*; public class Sample extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } }

(2)网页代码: index.html
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript" charset="utf-8" src="phonegap.0.9.4.js"></script> <title>Test</title> </head> <body> <a href="javascript:navigator.notification.alert('hello');">click me</a> </body> </html>

把此文件放置在工程的assets/www/目录下,如果网页代码中包含了其它的目录,则一并放置在这一目录下。
(3)在工程中加入库phonegap.0.9.4.jar的引用
编译运行并点击页面中click me链接时,可以见到以下画面:

注意:
(1)phonegap.0.9.4.jar中提供了很多的plugin, 上面的示例程序只调用了navigator.notification.alert, 如需要调用其它功能,则需要在android工程的Manifest.xml中加入这个功能permission声明:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

(2)在此可下载完整的工程文件,此例子基于phonegap自带的一个例子,但只保留了最少的部分。

热心网友 时间:2022-05-16 15:48

Android的APK本质就是再包装过的JPA,里面依然是Java编译文件,反编译再打包一次就可以了。
防御嘛

要么扰乱代码(令命名失去意义,反编译后依然看不明)
要么加壳(将原Java编译文件再重新编译成非公开的编译文件格式,然后封装多一个二进制的运行时,用JNI调用运行时读取再编译后文件代替原来的Java编译文件由系统读取运行)
或者给APK上安全证书,安装器有对证书校验(估计两种考虑,一种直接在系统层级上支持,支线开发可以考虑;或者参考加壳,APK自带一个安装用运行时避免破坏,原始执行编译保持,APK打包后上证书,运行APK后安装用运行时检查APK证书,不符合则终止安装,符合则通过。)

热心网友 时间:2022-05-16 15:49

1. 通用的套路大多都是反编译以后重新签名,然后上传各种国内市场
2. 常见的意图是:
i. 破解/修改协议(游戏等)
ii. 添加广告代码(主要获利方式),反编译出来smali照样能改
iii.(针对res文件的多一些,代码级的也有)美化MOD翻译等
3. 开发者的防范,只能针对代码反编进行防止(混淆、核心库抽离、JNI等),而目前为止没有任何办法能阻止二次发布的操作,跟网络侵权同,大致原因如下:
i. 同样的事甚至BAT也会偷偷做(本地化什么的)
ii. 除了BAT,很多市场也默许(甚至提倡)对大型、人气的游戏应用进行发布,博眼球
iii. ios越狱后安装破解的ipa也是近似的道理
iv. 丧心病狂的人给改了包名,一模一样的程序上传,即使是市场的基础过滤也没有办法

热心网友 时间:2022-05-16 15:47

Android App打包指的是将APP源码压缩成一个apk包的过程,具体步骤如下。

工具:eclipse

在eclipse中,工程上“右键”->导出。

让选择需要打包的工程,直接“Next”,到keystone页面


接下来填写证书信息


根据自己的情况填写,点击“Next”,生成keystore,到下一页面:

选择APK文件生成的位置,点击Finish,完成,把apk文件安装到手机上运行看是否正常运行。至此,全部结束!

热心网友 时间:2022-05-16 15:48

步骤如下:
在Android上,我们可以基于android.webkit.WebView作为应用的main view来产生一个应用程序,并让此WebView在应用启动时加载指定的网页,这样就构建了一个基于Android的WebApp。
对于Android, Sencha的phonegap也是基于此方法对网页程序进行打包的,下载phonegap后,其主要包括二个文件:
1、phonegap.0.9.4.jar
此jar文件中包含了类DroidGap,其对Activity及WebView进行了适当的封装,可以让用户更方便地进行打包。
更主要的功能是能实现的多个Webkit的plugin, 通过这些plugin可以在javascript中直接调用android的一些系统功能,比如得到设备的信息如屏幕大小,系统版本号等,还有打电话,发送短信,写本地文件等一系列功能。
2、phonegap.0.9.4.js
此js文件作了更高层次的封装,以便于在javascript中更方便地调用所增加的plugin的功能。比如在js中直接调用:
navigator.notification.vibrate(0)可以直接让手机进行振动
而navigator.notification.beep(2)可以让手机Beep二声
以下尝试一个最简单的例子(也可以参见phonegap中自带的一个例子):
(1)java源代码文件: Sample.java
package com.phonegap.Sample; import android.app.Activity; import android.os.Bundle; import com.phonegap.*; public class Sample extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } }

(2)网页代码: index.html
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript" charset="utf-8" src="phonegap.0.9.4.js"></script> <title>Test</title> </head> <body> <a href="javascript:navigator.notification.alert('hello');">click me</a> </body> </html>

把此文件放置在工程的assets/www/目录下,如果网页代码中包含了其它的目录,则一并放置在这一目录下。
(3)在工程中加入库phonegap.0.9.4.jar的引用
编译运行并点击页面中click me链接时,可以见到以下画面:

注意:
(1)phonegap.0.9.4.jar中提供了很多的plugin, 上面的示例程序只调用了navigator.notification.alert, 如需要调用其它功能,则需要在android工程的Manifest.xml中加入这个功能permission声明:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

(2)在此可下载完整的工程文件,此例子基于phonegap自带的一个例子,但只保留了最少的部分。

热心网友 时间:2022-05-16 15:48

Android的APK本质就是再包装过的JPA,里面依然是Java编译文件,反编译再打包一次就可以了。
防御嘛

要么扰乱代码(令命名失去意义,反编译后依然看不明)
要么加壳(将原Java编译文件再重新编译成非公开的编译文件格式,然后封装多一个二进制的运行时,用JNI调用运行时读取再编译后文件代替原来的Java编译文件由系统读取运行)
或者给APK上安全证书,安装器有对证书校验(估计两种考虑,一种直接在系统层级上支持,支线开发可以考虑;或者参考加壳,APK自带一个安装用运行时避免破坏,原始执行编译保持,APK打包后上证书,运行APK后安装用运行时检查APK证书,不符合则终止安装,符合则通过。)

热心网友 时间:2022-05-16 15:49

1. 通用的套路大多都是反编译以后重新签名,然后上传各种国内市场
2. 常见的意图是:
i. 破解/修改协议(游戏等)
ii. 添加广告代码(主要获利方式),反编译出来smali照样能改
iii.(针对res文件的多一些,代码级的也有)美化MOD翻译等
3. 开发者的防范,只能针对代码反编进行防止(混淆、核心库抽离、JNI等),而目前为止没有任何办法能阻止二次发布的操作,跟网络侵权同,大致原因如下:
i. 同样的事甚至BAT也会偷偷做(本地化什么的)
ii. 除了BAT,很多市场也默许(甚至提倡)对大型、人气的游戏应用进行发布,博眼球
iii. ios越狱后安装破解的ipa也是近似的道理
iv. 丧心病狂的人给改了包名,一模一样的程序上传,即使是市场的基础过滤也没有办法

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com