安装程序的方法:    
  
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 遭国内开发者抛弃 个人开发者寥寥无几

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手机无法为用户带来移动互联网的有效用户体验。