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安装文件,由系统检测后调用卸载应用。

Symbian 遭国内开发者抛弃 个人开发者寥寥无几

Symbian手机应用的开发在去年还拥有一定数量的开发者,但在今天召开的2011移动开发者大会的现场调查显示,近2000多人的会场中,Symbian开发者却寥寥无几。据记者了解,去年国内还有一定数量的Symbian开发者,当时Symbian应用市场还能否保持繁荣、能否为开发者带来机会成为一大热门话题。当时,众多专家表示Symbian对于开发者来说将不会有太大机会。但据当时的调查显示,Symbian平台下的应用开发者仍为数众多。

但在今年2月份,诺基亚宣布与微软达成全球战略合作伙伴关系,双方将在智能手机领域进行深度合作。而微软的Windows Phone 7操作系统将成为未来诺基亚高端机型主要使用的操作系统。

随即,诺基亚的N9手机发布中也首次采用了MeeGo操作系统,Symbian系统首次在诺基亚的高端机型中未被采用。另在最近的诺基亚大会中,诺基亚发布了两款智能手机产品:“Lumia800”与“Lumia710”,而这两款手机也均采用了微软的Windows Phone 7操作系统。

今日,在2011移动开发者大会现场,当李开复再次问到现场是否有Symbian开发者时,举手者寥寥无几。而当统计iOS与Android的开发者时,举手者几乎占据了绝大多数区域。李开复则认为Symbian用户甚至不能称之为移动互联网用户,因为Symbian手机无法为用户带来移动互联网的有效用户体验。