`

android 软件安装-更新-卸载

 
阅读更多
感谢:http://blog.csdn.net/netpirate/article/details/5801379


安装程序:软件从无到有。

卸载程序:软件从有到无。

更新程序:软件的覆盖安装,可以保留原版本的数据,提升软件版本。


安装程序的方法:

1、  通过Intent机制,调出系统安装应用,重新安装应用的话,会保留原应用的数据。


String fileName = Environment.getExternalStorageDirectory() + apkName;

Uri uri = Uri.fromFile(new File(fileName));

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri, application/vnd.android.package-archive");

startActivity(intent);

 


2、  直接调用安装接口。


Uri mPackageURI = Uri.fromFile(new File(Environment.getExternalStorageDirectory() + apkName));

int installFlags = 0;

PackageManager pm = getPackageManager();

try

{

    PackageInfo pi = pm.getPackageInfo(packageName,

    PackageManager.GET_UNINSTALLED_PACKAGES);

    if(pi != null)

    {

        installFlags |= PackageManager.REPLACE_EXISTING_PACKAGE;

    }

}

catch (NameNotFoundException e)

{}

PackageInstallObserver observer = new PackageInstallObserver();

pm.installPackage(mPackageURI, observer, installFlags);



安装应用权限:android.permission.INSTALL_PACKAGES



系统应用(安装在/system/app下面)可以采用该方式,第三方应用无法申请安装卸载权限。

java.lang.SecurityException: Neither user 10039 nor current process has android.permission.INSTALL_PACKAGES.



3、  执行install命令。



install –r 更新安装,默认新安装;如果不附上-r参数,则会清楚原应用的数据,版本一致则无法安装。

(1)am start …

(2)Runtime.exec(String[] args)

(3)Class<?> execClass = Class.forName("android.os.Exec");




4、  执行cp / adb push命令。



由系统检测到应用程序有更新,自动完成重新安装。



5、  通过第三方软件实现。



Market,EOE,eTrackDog均采用第一种方法实现更新。

优点:由系统核心应用程序控制安装程序;

缺点:无法控制安装过程;安装完成后,也无法立刻启动应用,需要用户确认;无法扩展。



实例:Market查找安装程序

Intent intent =

new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:your.app.id"));

startActivity(intent);




卸载程序的方法:



1、  通过Intent机制,调出系统卸载应用。

Uri packageURI = Uri.parse("package: your.app.id");

Intent intent = new Intent(Intent.ACTION_DELETE);

startActivity(intent);




2、  直接调用卸载接口。


PackageInstallObserver observer = new PackageInstallObserver();

pm.installPackage(mPackageURI, observer, installFlags);



卸载应用权限:android.permission.DELETE_PACKAGES



3、  运行rm apk安装文件,由系统检测后调用卸载应用。



备注说明:

Android系统的应用安装,在系统设置里面有一项,是否安装未知源,所在在软件更新的时候,需要检测这个选项,如果打钩,则只允许安装Market源提供的安装程序,如果没有打钩的话,系统安装应用时会提示用户设置,如果选择设置,设置好后,无法返回安装界面;如果选择取消,则推出安装程序。所以,如果是更新的话,一定要在下载之前就检测许可安装源的设置,或者在下载前检测是否已经下载过新的安装程序,避免重复下载安装程序。



相关的代码如下:

     
  int result = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0);      

        if (result == 0) {      

         // show some dialog here      

        // ...      

          // and may be show application settings dialog manually      

          Intent intent = new Intent();      

          intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);      

          startActivity(intent);     

         }

 

public static final class Settings.Secure extends Settings.NameValueTable

public static final String INSTALL_NON_MARKET_APPS


Since: API Level 3

Whether the package installer should allow installation of apps downloaded from sources other than the Android Market (vending machine). 1 = allow installing from other sources 0 = only allow installing from the Android Market。



下面是程序更新的几个步骤演示:














OVER!
  • 大小: 30.8 KB
  • 大小: 18.7 KB
  • 大小: 40.1 KB
  • 大小: 19.3 KB
分享到:
评论

相关推荐

    批量安装卸载android应用

    在Android系统中,批量安装和卸载应用通常是开发者、测试人员或者系统管理员为了提高效率而进行的操作。批量处理可以节省大量的手动操作时间,特别是在需要处理大量应用时。本压缩包提供的"BatInstaller"工具,正是...

    Android应用源码之程序的安装、卸载和更新.zip

    在Android操作系统中,应用的安装、卸载和更新是用户日常操作的重要部分。这份压缩包文件"Android 程序的安装、...同时,源码分析也有助于提升对Android安全性的理解和实践,例如如何防止恶意软件的非法安装和更新。

    android批量安装卸载软件,查看包名

    批量安装Android软件通常涉及到使用ADB(Android Debug Bridge),这是一个强大的命令行工具,包含在Android SDK中。首先,你需要在计算机上安装SDK并设置好环境变量,确保ADB可被命令行调用。然后,将需要安装的...

    安卓2-1(Android-2-1)系统可卸载自带软件列表.pdf

    安卓2-1(Android-2-1)系统可卸载自带软件列表.pdf

    启动一个服务监控android系统的打印日志--实现卸载软件提示

    启动一个服务监控android系统的打印日志--实现卸载软件提示 android卸载提示的思路是启动一个服务监控android系统的打印日志,当监控到"android.intent.action.DELETE"并且包含自己应用的包名时,提示给用户。 采用...

    android静默安装与卸载

    在Android系统中,静默安装(Silent Installation)和卸载是高级用户或者开发者为了批量管理设备上的应用程序而经常使用的功能。通常,这些操作在没有用户交互的情况下进行,因此被称为“静默”。在本篇文章中,我们...

    android 静默安装和卸载

    在Android系统中,静默安装(Silent Installation)和卸载(Silent Uninstallation)指的是在用户无感知的情况下,通过编程方式自动完成应用的安装和卸载过程。这对于批量管理和维护设备,尤其是在企业环境中,非常...

    android卸载程序代码

    在Android系统中,卸载应用程序通常涉及到对Android SDK(软件开发工具包)的理解以及使用Java编程语言。这里我们将深入探讨如何通过代码实现卸载已安装的程序,特别注意的是,剔除原装软件可能需要系统级别的权限,...

    Android SDK Platform-tools 26.0.2版本

    通过ADB,开发者可以进行数据传输、安装/卸载应用、运行shell命令以及进行远程调试。在26.0.2版本中,ADB可能已经包含了对当时Android系统的优化和bug修复。 2. **Fastboot**:Fastboot是一种低级别的恢复模式,...

    Android监听应用程序安装和卸载

    在Android开发中,有时候我们需要让自己的应用能够感知到其他应用的安装或卸载情况,比如实现应用管理器、安全软件等场景时,就需要用到这种功能。本文将详细介绍如何在Android应用中实现对其他应用安装与卸载的监听...

    Android中软件的下载、安装和卸载/Volley

    在软件卸载方面,Android提供了PackageManager服务,我们可以调用它的deletePackage()方法来卸载指定的软件。首先,获取到PackageManager的实例,然后传入包名作为参数,这将触发卸载操作。需要注意的是,这个操作...

    安卓安装卸载相关-Android中禁止某软件的安装.zip

    Android中禁止某软件的安装.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    adb Android SDK Platform-Tools 23

    - 应用管理:能够安装、卸载、启动和停止Android应用,以及查询设备上的已安装应用。 - 设备控制:可以模拟用户输入,如点击、滑动等,便于自动化测试。 2. **adb的组成**: - `adb server`:运行在开发者机器上...

    非开发人员如何使用命令行安装和卸载Android APP

    对于非开发人员来说,虽然可能不常接触,但掌握如何在命令行下安装和卸载Android应用程序(APP)是很有用的,尤其是在没有图形用户界面或者需要批量处理时。这篇博客“非开发人员如何使用命令行安装和卸载Android ...

    91手机助手forAndroid安装卸载软件教程借鉴.pdf

    二、软件卸载 在91手机助手的软件管理页面,用户可以轻松管理已安装的应用。点击左侧的“已安装的软件”,将展示手机内所有已安装的应用程序。若想卸载某个软件,只需选中该应用,然后在屏幕右下方点击“卸载”按钮...

    Android通过命令卸载系统内置软件

    ### Android通过命令卸载系统内置软件 在进行Android应用程序开发时,有时会遇到需要移除设备上预装的系统应用的情况。例如,在某些情况下,如果你的应用程序与预装的系统应用具有相同的包名,那么你的应用程序将...

    91手机助手forAndroid安装卸载软件教程整理.pdf

    91手机助手for Android是一款功能强大的应用程序管理工具,它为用户提供了一站式的软件安装与卸载服务,极大地优化了Android用户的手机体验。本教程将详细讲解如何利用91手机助手进行软件的推荐、下载、安装以及卸载...

    uni-app从安装到卸载的入门教程

    【uni-app】是一款由DCloud(数字天堂)推出的开源框架,它允许开发者通过一套代码实现跨平台开发,覆盖iOS、Android、H5、微信小程序、支付宝小程序、百度小程序、头条小程序等多个平台。本教程将带你从零开始,完成...

Global site tag (gtag.js) - Google Analytics