如何通过命令行或者使用代码打开一个apk文件

命令行打开方式:

1、首先你要打开android模拟器      (下面命令行打开的4步骤我是引用百度上的)

1).找到SDK的tools文件夹,我的在D:\android-sdk-windows\tools;
2).如果没有创建AVD的话,可以用命令android list targets查看各版本对应的id;
然后android create avd --target 5 --name Android2.2;//我这里5对应的是android2.2
3).用命令android list avd查看自己以创建的AVD
4).emulator -debug avd_config -avd Android2.2就可以打开AVD了,就是有点慢

或者在eclipse上直接打开一个android程序。

2、然后输入 adb install  xxx.apk,在模拟器上点击对应应用即可(安装apk后的应用程序名不知道的话得仔细找哦,肯定在模拟器上的)。

注:xxx.apk包含路径名,在命令行你只要直接把apk文件拖至windows命令窗口就可以加载完整路径了。

 

代码打开方式:

需要将apk拷贝至shared_prefs文件夹下

(Eclipse下工具栏window-->show view-->other-->Android-->File Explorer,

也许打开的File Explorer为空白,这个你肯定忘了先运行下面代码构成的工程。出现目录后找到data/data/工程包名/shared_prefs,ok)

public class APKTest extends Activity
{
 private SharedPreferences metafer = null;
 ApplicationInfo mAppInfo = null;
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //apk安装或卸载路径
        String installPath = "/data/data/com.hyz/shared_prefs/matchmusic.apk";
        //新建shared_prefs文件夹
        mkShared_prefs();
        //安装apk
        installApk(installPath);
        //卸载apk
        dumpApk(installPath);
    }
    public void dumpApk(String path)
    {
     ApplicationInfo mAppInfo = null;
        PackageManager pm = getApplicationContext().getPackageManager();
        PackageInfo info = pm.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES);
        if(info != null)
        {
         mAppInfo = info.applicationInfo;
        }
        Uri uri = Uri.fromParts("package", mAppInfo.packageName, null);
        Intent it = new Intent(Intent.ACTION_DELETE, uri);
        startActivity(it);
    }
    public void installApk(String path)
    {
     Intent ret = new Intent();
     ret.setDataAndType(Uri.fromFile(new File(path)),"application/vnd.android.package-archive");
        ret.setAction(Intent.ACTION_VIEW);
        startActivity(ret);
    }
    public void mkShared_prefs()
    {
     if (metafer == null)
     {
  // metafer = getSharedPreferences("Vdmc", 0);
      metafer =  PreferenceManager.getDefaultSharedPreferences(this); 
  }
     SharedPreferences.Editor editor = metafer.edit();
  //editor.putString("IMSI", "");
  editor.commit();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值