您好我正在为公司开发一个应用程序,我们的应用程序包含一个包含个人信息的sqlite数据库,我们希望保护它.我们怎样才能保护它.因为我很容易反编译,因为我自己做了.所以现在的问题是如何保护apk?以及如何在手机上安装应用程序后保护手机中的数据库.
我试图了解如何在Android上安装apk的过程,特别是通过adb install(我正在测试的地方)安装Android SDK模拟器.
在搜索中,我发现没有令人满意的答案"将apk简单地复制到/ data/app并在运行时安装.这对我来说并不令人满意,因为它没有解释apk的图标如何出现在其他菜单上的问题.
来自Windows背景,运行.exe或安装程序来安装程序会修改注册表,文件,服务等....我需要了解在Android上安装apk时是否发生此类或类似情况.
因此,如果有人能够向我解释在Android上安装apk时具体发生什么,我将非常感激.
另外,我还想知道Dalvik VM zygote
是否参与了安装,还是发生在较低的Linux内核级别?
我的最终目标是使用strace来控制apk的安装过程,以记录系统修改,文件创建,网络活动和其他感兴趣的事件.
我对新的Play Developer Console功能(Alpha和Beta测试)有疑问,也许有人对它有一些经验.
我邀请了GoogleGroups的一些测试人员,他们正在接收邀请并接受邀请.
我想测试付费应用.他们是否需要为测试付费?这个应用程序尚未在商店中发布但是.
我怀疑将其设置为免费,之后我无法更改为付费应用.
有什么建议怎么办?
如果我有一个apk可以删除当前的签名,有些如何使用不同的.keystore文件重新签名并仍然安装应用程序?
更新:我设法让它与Jorgesys的解决方案一起使用,之前我搞砸了,我解压缩.apk然后在删除META-INF文件夹并将文件扩展名更改回.apk后重新解压缩.我应该做的只是用winzip打开它并删除winzip里面的文件夹.
我从互联网上下载了Myfiles.apk,我正在尝试将它安装到我的Android模拟器上.
通过命令提示符安装Myfiles.apk文件时,我收到此错误.
我在命令提示符下尝试了以下
C:\android-sdk\tools> adb -s emulator-5554 install C:\Users\Me\Desktop\MyFiles.apk
Run Code Online (Sandbox Code Playgroud)
如何正确地将此APK安装到模拟器?
将android studio更新到2.3版之后.我在Android设备安装Android设备时遇到问题.这里附加在更新android studio之前和之后在控制台中引发的输出.
之前更新到android studio 2.3
$ adb push E:\mynewapp\TestDemo\TestDemo\app\build\outputs\apk\app-debug.apk /data/local/tmp/com.example.gangsofcoder.testdemo
$ adb shell pm install -r "/data/local/tmp/com.example.gangsofcoder.testdemo"
pkg: /data/local/tmp/com.example.gangsofcoder.testdemo
Success
Run Code Online (Sandbox Code Playgroud)
更新到android studio 2.3之后
$ adb install-multiple -r E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\dep\dependencies.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_1.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_3.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_0.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_2.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_4.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_6.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_5.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_7.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_8.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\intermediates\split-apk\debug\slices\slice_9.apk
E:\SurajBahadur\testdemoApp\testdemo\app\build\outputs\apk\app-debug.apk
Run Code Online (Sandbox Code Playgroud)
安装APK时出错
我最近注意到<module>/release/output.json
每次运行Android Studio 3 Canary 1时生成的新文件Build
- > Generate Signed APK...
,其内容如下所示.
任何人都可以确认看到这种行为吗?还是因为笔记本电脑上有一些本地配置?
任何人都可以解释这个文件的目的吗?添加是否安全.gitignore
?
[{
"outputType": {
"type": "APK"
},
"apkInfo": {
"type": "MAIN",
"splits": [],
"versionCode": 32
},
"outputFile": {
"path": "/path/to/the/generated/release/filename.apk"
},
"properties": {
"packageId": "com.example.android",
"split": ""
}
}]
Run Code Online (Sandbox Code Playgroud) 我搜索过但没有找到任何针对我特定情况的疑问或答案.我有一台快速的新机器,有足够的内存运行Windows 7.我正在使用最新的Eclipse和Android SDK.
当我运行一个应用程序时,模拟器大约需要45秒才能启动(对于模拟器来说非常快!)从运行启动到运行我的应用程序.
如果我然后更改应用程序并在仍在运行的模拟器上重新运行它,则时间会增加到70+秒!与人们所有其他投诉相反,在我的情况下,重新启动模拟器比使用现有实例更快.我不喜欢那样.
这是时代:
2011-09-29 13:07:13 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:07:18 - hello Installing hello.apk...
2011-09-29 13:07:37 - hello Success!
Run Code Online (Sandbox Code Playgroud)
在更改应用程序以重新加载后重新运行:
2011-09-29 13:08:18 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:09:16 - hello Installing hello.apk...
2011-09-29 13:09:24 - hello Success!
Run Code Online (Sandbox Code Playgroud)
如您所见,当模拟器刚刚启动时,上传到模拟器仅需5秒.运行模拟器需要将近一分钟!这是延长重新运行时间的原因.即使我在重新运行它之前在模拟器上卸载应用程序,这也不会改变.
关于我可以尝试解决这个问题的任何想法?它似乎是某种沟通问题,可能与adb有关.
adb install foo.apk
Run Code Online (Sandbox Code Playgroud)
使用此命令时,如果存在apk,我应该收到错误*失败[INSTALL_FAILED_ALREADY_EXISTS]*
adb install -r myapp-release.apk
Run Code Online (Sandbox Code Playgroud)
在这种情况下,通过根据文档保留旧数据,将替换现有的apk,
'-r'表示重新安装应用程序,保留其数据
现在我如何重新安装应用程序,但所有以前的数据应该被删除?
编辑
我知道我们可以做到这一点
adb uninstall com.package.foo & adb install foo.apk
Run Code Online (Sandbox Code Playgroud)
我只是想知道adb本身是否有命令或其他内容.
android ×10
apk ×10
emulation ×2
adb ×1
beta-testing ×1
cmd ×1
installation ×1
java ×1
performance ×1
signing ×1
upload ×1