Advertisement

Android应用程序静默安装及重启的方法

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本文章介绍了在Android系统中实现应用静默安装与自动重启的具体方法和技术要点。适合开发者参考学习。 Android程序静默安装后重新启动APP的方法主要介绍了如何在Android系统中实现软件包的自动、无用户干预的安装过程,并且确保应用能在安装完成后继续运行。 需求简介: 广告机上的应用程序需要具备自动升级功能,由于这些设备没有触摸屏,因此不能通过手动点击来完成更新。这意味着必须找到一种方法让APP能够自行下载和安装新的版本,同时在更新后保持正常运行状态。 实现思路: 为满足上述需求,静默安装成为首选方案之一。鉴于广告机已经root过,执行静默安装相对简单。然而,在应用被自动升级之后,原有的进程会被终止。因此需要一种机制来重启应用程序。 解决方法是通过Linux系统的`am start`命令启动特定的Activity,并且添加一个短暂的延迟(例如使用`sleep 120; am start -n 包名/第一个Activity名称;`)以确保安装过程完全结束再执行应用启动。这需要在代码中调用系统命令,如: ```java private void execLinuxCommand(){ String cmd= sleep 120; am start -n 包名/.MainActivity; } ``` 此方法可以实现自动重启应用程序的需求。 涉及到的权限包括`INSTALL_PACKAGES`:这是Android API里的一个特殊权限,允许应用安装新的软件包。在Manifest文件中声明这个权限是必要的。 ```xml ``` 总结: 通过利用静默安装功能结合Linux命令的使用,可以实现应用程序自动升级的同时确保其能够正常运行而不需人工干预。 知识点包括但不限于: - Android静默安装:无需用户许可直接执行软件包的安装。 - 自动升级机制的设计与实施。 - 利用Root权限简化操作流程。 - 使用`am start`命令启动Android应用中的Activity。 - 在Linux环境下执行系统级指令的操作方式。 - 如何在Manifest文件中声明必要的API访问权限。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Android
    优质
    本文章介绍了在Android系统中实现应用静默安装与自动重启的具体方法和技术要点。适合开发者参考学习。 Android程序静默安装后重新启动APP的方法主要介绍了如何在Android系统中实现软件包的自动、无用户干预的安装过程,并且确保应用能在安装完成后继续运行。 需求简介: 广告机上的应用程序需要具备自动升级功能,由于这些设备没有触摸屏,因此不能通过手动点击来完成更新。这意味着必须找到一种方法让APP能够自行下载和安装新的版本,同时在更新后保持正常运行状态。 实现思路: 为满足上述需求,静默安装成为首选方案之一。鉴于广告机已经root过,执行静默安装相对简单。然而,在应用被自动升级之后,原有的进程会被终止。因此需要一种机制来重启应用程序。 解决方法是通过Linux系统的`am start`命令启动特定的Activity,并且添加一个短暂的延迟(例如使用`sleep 120; am start -n 包名/第一个Activity名称;`)以确保安装过程完全结束再执行应用启动。这需要在代码中调用系统命令,如: ```java private void execLinuxCommand(){ String cmd= sleep 120; am start -n 包名/.MainActivity; } ``` 此方法可以实现自动重启应用程序的需求。 涉及到的权限包括`INSTALL_PACKAGES`:这是Android API里的一个特殊权限,允许应用安装新的软件包。在Manifest文件中声明这个权限是必要的。 ```xml ``` 总结: 通过利用静默安装功能结合Linux命令的使用,可以实现应用程序自动升级的同时确保其能够正常运行而不需人工干预。 知识点包括但不限于: - Android静默安装:无需用户许可直接执行软件包的安装。 - 自动升级机制的设计与实施。 - 利用Root权限简化操作流程。 - 使用`am start`命令启动Android应用中的Activity。 - 在Linux环境下执行系统级指令的操作方式。 - 如何在Manifest文件中声明必要的API访问权限。
  • AndroidAPP技巧
    优质
    本文章介绍了如何在Android设备上实现应用程序的静默安装以及自动重启特定应用的方法与步骤。 需求简介 之前老板提出一个要求,在广告机上运行的应用程序需要具备自动升级的功能。由于这些设备是非触摸屏的,所以用户无法通过手动点击进行更新操作。因此,应用必须能够实现自动下载、安装并完成升级过程,并且在安装完成后继续正常运行,同时尽量不依赖其他应用程序来达成上述目标。 实现思路 为满足这一需求,首先考虑的是静默安装的方法。由于广告机已具备root权限,执行这种类型的安装相对容易。以下是进行应用安装的主要代码: ``` /* @param apkPath 等待安装的应用程序全路径,例如:/sdcard/app/app.apk */ private static boolean clientInstall(String apkPath, ```
  • Android源代码(参考)
    优质
    本项目包含Android应用程序包的静默安装功能的源代码实现,适用于开发者研究和学习Android应用安装机制。 近日想实现静默安装(不提示用户),网上搜到的文章大多提到一个方法 PackageManager.install。这是一个非公开的方法,其用法借鉴了内置应用 packageInstaller,跳过Activity提示用户,直接调用核心方法。由于下载整个Android源码较为麻烦且文件较大,这里将相关部分的代码打包提供给大家。
  • Android免ROOT
    优质
    介绍一款无需获取ROOT权限即可实现应用静默安装的工具或方法,适用于追求便捷和隐私保护的安卓用户。 需要framework.jar包,并调用方法Installer.getInstance().silentInstall(this,apk路径);。
  • Android APK后台
    优质
    本文章介绍了如何在Android系统中实现APK文件的后台静默安装方法,无需用户手动操作,提高应用分发效率。适合开发者参考使用。 通过pm命令方式可以实现Android apk的后台静默安装。这种方法在4.2和4.4版本上都已验证可行。
  • 常见软件
    优质
    本文章介绍了各种常见的软件实现静默安装的方法和步骤,帮助用户在无人值守的情况下快速完成软件部署。 这段文字主要涉及在行政内网环境下使用压缩工具、输入法以及浏览器(如Chrome和Firefox)和PDF阅读器,并且会静默安装Flash插件。
  • Android中实现两种
    优质
    本文介绍了在Android系统中实现应用静默安装的两种方法,帮助开发者或用户无需手动操作即可自动完成软件安装。 在Android系统中,常规的APK安装过程会弹出一个用户界面,要求用户确认安装操作。然而,在某些特定场景下,如系统更新或自动化测试,开发者可能需要在后台执行APK的静默安装,即不显示任何用户界面。本段落将探讨两种实现Android静默安装的方法。 1. **root权限静默安装** 这种方法适用于设备已经获取root权限的情况。通过执行shell命令`su pm install -r filePath`,可以在后台静默安装APK。具体实现的Java代码如下: ```java protected static void executeSuCMD() { Process process = null; OutputStream out = null; InputStream in = null; String currentTempFilePath = sdcard/app.apk; try { // 请求root权限 process = Runtime.getRuntime().exec(su); out = process.getOutputStream(); // 调用安装命令 out.write((pm install -r + currentTempFilePath + \n).getBytes()); in = process.getInputStream(); int len; byte[] bs = new byte[256]; while (-1 != (len = in.read(bs))) { String state = new String(bs, 0, len); if (Success\n.equals(state)) { // 安装成功后的操作 } } } catch (IOException e) { e.printStackTrace(); } finally { try { if (out != null) { out.flush(); out.close(); } if (in != null) { in.close(); } } catch (IOException e) { e.printStackTrace(); } } } ``` 这段代码首先执行`su`命令获取root权限,然后通过`out.write()`写入安装命令`pm install -r filePath`,其中`filePath`为APK的路径。当从输入流中读取到Success\n时,表示安装成功。 2. **非root权限静默安装(提示用户安装)** 对于没有root权限的设备,可以通过Intent启动安装流程,但仍然需要用户确认。代码如下: ```java public static void openFile() { // 检查文件是否存在 if (!isHasfile()) { downLoadFile(http://example.com/app.apk); } Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(/sdcard/updateupdata.apk)), application/vnd.android.package-archive); mContext.startActivity(intent); } ``` 这里首先检查文件是否存在,如果存在则创建一个Intent,设置`FLAG_ACTIVITY_NEW_TASK`以在新的任务栈中启动Activity,并设置`ACTION_VIEW`以查看APK文件。`setDataAndType()`用于指定文件类型,这里是application/vnd.android.package-archive,表示APK文件。通过`startActivity()`启动Intent,系统会弹出安装界面,用户点击确认后才能进行安装。 **总结** 在Android中实现静默安装,root权限提供了后台无提示安装的可能,但这种方式可能会受到安全性和权限的限制。对于非root设备,虽然可以通过Intent启动安装流程,但无法完全避免用户交互。在实际应用中,开发者应根据设备状况和用户需求选择合适的方法。同时,由于静默安装涉及到系统的安全层面,使用时需谨慎,遵守应用商店和平台的相关规定,以免引起不必要的安全风险。
  • Android root 实现 APK
    优质
    本教程详细介绍了如何在不获取root权限的情况下,在安卓设备上实现APK文件的静默安装方法。无需用户交互即可自动完成应用部署。 使用Android5.0的环境编译时,不同版本之间aidl文件可能会有差异,具体情况需参照Android系统源码。详细内容可参考博客文章《Android 无需root实现APK静默安装》。
  • Android 与卸载(SilentInstaller)
    优质
    SilentInstaller是一款专为Android设备设计的应用程序管理工具,它能够实现应用的静默安装和卸载,无需用户手动操作界面,提供高效便捷的系统优化解决方案。 Android 静默安装与静默卸载可以通过发送特定的广播Intent来实现。 **安装:** ```java Intent intent = new Intent(android.intent.action.SILENT_PACKAGE_INSTALL); intent.putExtra(silent_install_file, /sdcard/Helloworld.apk); intent.putExtra(silent_install_auto_start, true); // 是否在安装后启动应用 intent.putExtra(silent_install_start_clazz, com.example.helloworld.MainActivity); // 指定要启动的Activity名称 sendBroadcast(intent); ``` **卸载:** ```java Intent intent = new Intent(android.intent.action.SILENT_PACKAGE_DELETE); intent.putExtra(silent_delete_package, com.example.helloworld); // 需要指定需要删除的应用包名 sendBroadcast(intent); ``` 以上代码展示了如何通过发送广播的方式来静默安装和卸载应用,无需用户交互。
  • Android中实现APK两种
    优质
    本文介绍了在Android系统中实现APK文件静默安装的两种方法,无需用户手动操作即可完成应用的自动部署。 这篇文档介绍了Android APK的安装方式,希望对你有所帮助。