好久没有更新blog了,今天那就即兴写点。
退出软件
我们知道android是多任务的系统,当多个Activity相互跳转的时候,这个时候在每个Activity都有退出出口的话,怎么真正退出就成为了一个小小的问题,在网上很多资料都说,个人觉得都是没有真正解决问题的实质。
先爆料一下网上的,杀死进程的方式:
1,android.os.Process.killProcess(android.os.Process.myPid());
2,System.exit(0);
3,
private void killProcess(Context mAct) {
??????? Log.i(TAG, "killProcess");
??????? String packageName =? mAct.getPackageName();
??????? String processId = "";
??????? try {
??????????? Runtime r = Runtime.getRuntime();
??????????? Process p = r.exec("ps");
??????????? BufferedReader br = new BufferedReader(new InputStreamReader(p
??????????????????? .getInputStream()));
??????????? String inline;
??????????? while ((inline = br.readLine()) != null) {
??????????????? if (inline.contains(packageName)) {
??????????????????? Log.i(TAG, "" + inline);
??????????????????? break;
??????????????? }
??????????? }
??????????? br.close();
??????????? StringTokenizer processInfoTokenizer = new StringTokenizer(inline);
??????????? int count = 0;
??????????? while (processInfoTokenizer.hasMoreTokens()) {
??????????????? count++;
??????????????? processId = processInfoTokenizer.nextToken();
??????????????? if (count == 2) {
??????????????????? break;
??????????????? }
??????????? }
??????????? Log.e(TAG, "kill process : " + processId);
??????????? r.exec("kill -15 " + processId);
??????? } catch (IOException ex) {
??????????? Log.e(TAG, "" + ex.getStackTrace());
??????? }
}
4,直接返回Home界面
Intent home = new Intent(Intent.ACTION_MAIN);
??? home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
home.addCategory(Intent.CATEGORY_HOME);
startActivity(home);
试过了你就会发现,其实也没有真正实现想要的效果。
这里用一个简单的方式,就是逐级退出,只要重载Activity的onResume()就ok了。
示例:
@Override
??? protected void onResume() {
?????? super.onResume();
?????? if(mExiting){
?????????? finish();
?????? }
}
反编译
很早之前看过牛人写的关于反编译apk的方法,太过于复杂,现在有简单的了,这里顺便提一下。
准备工具:
dex2jar
jd-gui
步骤:
1,? 下载上面提到两个小软件,网上到处都有。
2,? 将apk后缀名改为压缩软件识别的后缀,例如zip
3,? 解压改后缀名后的软件包
4,? 在dos界面进入准备好的工具dex2jar目录,运行dex2ja class.dex
5,? 将地步反编译好的jar用java反编译工具再反编译为class就ok了,要是apk在打包之前没有混淆的话,反编译的效果很多,包结构很清晰,目前市面上好的软件基本都可以反编译哦。
?