android,安装和卸载软件

安装程序的方法:
 
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 sdk 如何重新生成debug.keystore

1)首先你要确定你安装的JDK位置,Windows->Preferences->Java->InstalledJREs,你可以看到是Jre的location,再在doscmd模式下查看你当前系统的path是否已经包含了。如果没有包含添加到当前环境参数中。因为我们要用到的keytool命令在这个目录下呀。

2)接下来就要找到你不前AVD的debug.keystore的位置,windows->perferences->android->build,

default debug keystore文本框中,列出C:\Users\Liyunde\.android\debug.keystore,这就是默认的debug.keystore,你可以先把这个文件改一下名。我们需要创建一个新的debug.keystore

3)紧接着我们来创建一个新的debug.keystore,在cmd下,进入C:\Users\Liyunde\.android目录

执行命令如下:

keytool -genkey -v -keystore debug.keystore -aliasandroiddebugkey -keyalg RSA -validity 10000

输入密码,用户等信息确认后便可生成一个debug.keystore

1

 
2

4)好了,接下来我们就需要获取MD5,去google申请一个apikey,很简单

在当前目录下执行:

keytool -list -alias androiddebugkey -keystoredebug.keystore

根据提示输入你在第三步所设的密码,ok,就会得到下面信息,

Certificate fingerprint (MD5):FC:ED:DE:BS:16:1A:E8:05:F0:44:AD:4E:45:42:4B:D4

这就是我们申请apikey时需要的FC:ED:DE:BS:16:1A:E8:05:F0:44:AD:4E:45:42:4B:D4

3

通过浏览器访问http://code.google.com/intl/zh-CN/android/maps-api-signup.html

在My certificate’s MD5 fingerprint文本框中输入您刚刚获取到的MD5码

点击Generate API Key,当然前提是你的有一个google的账户。

Google 地图 API

Google 代码主页 > Google 地图 API >Google 地图 API 注册

感谢您注册 Android 地图 API 密钥!

您的密钥是:

0VWb_8R4e2TIB8rp7D5Hs8rQ3E_Um_3XryRJo3A

此密钥适用于所有使用以下指纹所对应证书进行验证的应用程序:

25:93:08:C1:02:7D:E3:8D:5E:22:23:13:B5:DD:F4:E2

下面是一个 xml 格式的示例,帮助您了解地图功能:

           <com.google.android.maps.MapView

              android:layout_width="fill_parent"

              android:layout_height="fill_parent"

              android:apiKey="0VWb_8R4e2TIB8rp7D5Hs8rQ3E_Um_3XryRJo3A"

              />

          有关详细信息,请查看 API 文档。

4