安装程序的方法:
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安装文件,由系统检测后调用卸载应用。
日期: 2011 年 12 月 31 日
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
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
通过浏览器访问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 文档。