Android是否提供了smth.喜欢那个或者每次我的应用程序启动时都需要检查"哦,我刚刚安装了吗?我现在必须初始化共享首选项吗?"
Android系统是否应该在应用程序运行时升级时重新启动应用程序?
当我们升级我们的应用程序(通过从SD卡打开.apk)并且应用程序正在运行时,现有进程保持不变,直到我们从应用程序管理器"强制关闭"应用程序之后升级才会生效.但是,应用程序可能处于某种奇怪的状态,并且可能无法应对它应该采取的某些意图.所以我想知道如果我们修复那个特定的破坏状态或者我们是否需要自己处理升级,应用程序是否会重新启动.
请注意,我知道(或至少有一些想法)如何以编程方式检测升级.我想知道的是,如果应用程序处于一个理智状态,我是否应该或是否有其他机制应该这样做.
我可以在rooted设备上使用busybox在后台安装apk吗?
我看到类似的东西,但它不起作用
process install;
CommandCapture command = new CommandCapture(0, "chmod 777 /data/app");
RootTools.getShell(true).add(command).waitForFinish();
CommandCapture command2 = new CommandCapture(0, "chmod 777 /system/xbin/busybox");
RootTools.getShell(true).add(command2).waitForFinish();
install = Runtime.getRuntime().exec("/system/xbin/busybox install " + Environment.getExternalStorageDirectory() + "/Download/" + "xxx.apk /data/app/xxx.apk");
Run Code Online (Sandbox Code Playgroud) 我正在创建一个Android应用程序,它依赖于其他一些Android应用程序.因此,如果用户手机上还没有这些相关的应用程序,我想从Play商店以编程方式下载它们.但在此过程中,我不希望控件转到Play商店应用程序(即不应显示Play商店应用程序活动).有可能使用一些服务,谷歌API实现这一点?我该如何实施呢?我尝试了市场api并且它有效但现在安装时我会弹出"未知来源".是否有可能摆脱这种形式?从Play商店应用程序和市场api下载apk有什么区别?
我正在尝试使用Android的更新程序脚本语言(Edify?)来通过无线方式将APK安装到我可以控制的嵌入式设备上. 这是一个描述语言的链接.
我的第一次尝试如下:
package_extract_file("added_files/data/app/test.apk", "/data/app/test.apk");
Run Code Online (Sandbox Code Playgroud)
这导致test.apk自动安装/data/data/com.acme.test,但目录/data/data/com.acme.test/lib是空的,而它应该包含test.so,包含在其中的共享库test.apk.(如果我使用手动安装adb install test.apk,则会解压缩库.)
然后我尝试将APK解压缩/data而不是/data/app因此操作系统不会自动安装它/data/data,我可以尝试使用脚本进行安装:
package_extract_file("added_files/data/app/test.apk", "/data/test.apk");
run_program("/system/bin/pm", "install", "/data/test.apk");
Run Code Online (Sandbox Code Playgroud)
这导致以下错误:
about to run program [/system/bin/pm] with 3 args
run_program: execv failed: Exec format error
run_program: child exited with status 1
Run Code Online (Sandbox Code Playgroud)
我不确定为什么会发生上述错误.
有没有办法安装APK并自动提取其共享库?我可以手动安装库,但我希望避免这种情况.
我广泛搜索并没有发现问题.当您尝试APK file使用Intentin 安装时Android Nougat,它只是不安装并显示以下警告:"解析包时出现问题".
它可以完美地打开PDF文件,例如,使用设置来打开这种类型的文件(.PDF).但要安装.apk文件不起作用.
LogCat 没有显示任何错误,我无法达成任何解决方案.
可能有什么不对?
以下代码:
清单:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="br.com.xxxxxx.xxxxxx.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths"/>
</provider>
Run Code Online (Sandbox Code Playgroud)
XML /文件路径:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="storage/emulated/0" path="."/>
Run Code Online (Sandbox Code Playgroud)
活动:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
try {
Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
File file = new File(getContext().getFilesDir(), "app-debug.apk");
Uri uri = FileProvider.getUriForFile(getContext(), BuildConfig.APPLICATION_ID + ".fileprovider", file);
intent.setDataAndType(uri, "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
finish();
} …Run Code Online (Sandbox Code Playgroud) android android-intent apk android-install-apk android-7.0-nougat
我正在尝试设置我自己的服务器来托管apk文件,这些文件可用于客户端应用程序中的安装和更新.
在apk的新版本更新中,只有更新的部分应该在客户端下载.我能够在服务器端使用"bsdiff"生成补丁文件.但是在客户端,我应该如何将补丁文件与原始apk合并并安装更新.
android auto-update updates android-package-managers android-install-apk
由于我需要减小APK文件的大小,我已经按照Apk扩展指南将APK分成块.
该下载库定义的方式来下载expansion file,但我需要知道的排除方法resource files,并aar 从APK文件.
我发现以下,但这些既不删除resource-drawable files任何arr文件,也不删除任何文件,并且apk的大小保持不变.
出于测试目的,我添加drawables了大约4 MB几个arr文件3 MB.我是apk从Build->Build APK选项创建的.我不知道以下是否会影响已签名的APK.
sourceSets {
main {
resources {
exclude '**/drawable/*'
}
}
}
android {
packagingOptions {
exclude 'lib/armeabi/a.so'
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在尝试从我的App Build文件夹(App-> Build-> Output-> Apk)复制调试Apk并尝试安装到设备但我在安装"阻止播放保护"时收到错误消息.
但是当我用我的调试KeyStore签署我的Apk并且我可以成功安装时没有出现此错误第一次但是当我为同一个APk生成具有相同调试密钥库的APK时,我面临同样的问题,即被Play保护阻止.
我试图了解是否可以将Android应用程序拆分为两部分(从一个APK安装).我调查这个是在Device存储器上安装一个部件而在SD-CARD上安装另一个部件.这两个部分属于一起,不应单独安装.
注意:我不仅需要分离资源,还需要分离活动,因此APK Expansion Files不需要解决方案,因为不提供此类功能.