如何通过命令行或者使用代码打开一个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();     } }

你可能感兴趣的:(apk)