分享代码Android 结束进程的方法

Android 结束进程,关闭程序的方法,经过这几天的调研,发现了Android结束一个进程的方法

即采用下面这个类

void android.app.ActivityManager.restartPackage(String packageName)

public void restartPackage (String packageName)

Since: API Level 3

Have the system perform a force stop of everything associated with the given application package. All processes that share its uid will be killed, all services it has running stopped, all activities removed, etc. In addition, a ACTION_PACKAGE_RESTARTED broadcast will be sent, so that any of its registered alarms can be stopped, notifications removed, etc.

You must hold the permission RESTART_PACKAGES to be able to call this method.

Parameters

packageName

The name of the package to be stopped.







使用这个类的具体源代码

Java代码

[java] final ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

am.restartPackage(getPackageName());

final ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

am.restartPackage(getPackageName());

再加上uses-permission





Xml代码

[xhtml]




结束进程还有android.os.Process.killProcess(pid)只能终止本程序的进程,无法终止其它的

public static final void killProcess (int pid)
Kill the process with the given PID. Note that, though this API allows us to request to kill any process based on its PID, the kernel will still impose standard restrictions on which PIDs you are actually able to kill. Typically this means only the process running the caller's packages/application and any additional processes *d by that app; packages sharing a common UID will also be able to kill each other's processes.


public void finish ()
Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult().
这是结束当前activity的方法


在android2.2版本之后则不能再使用restartPackage()方法,而应该使用killBackgroundProcesses()方法
manager.killBackgroundProcesses(getPackageName());

[c-sharp] ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);

manager.killBackgroundProcesses(getPackageName());
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
manager.killBackgroundProcesses(getPackageName());
加入权限
[c-sharp] //需要在xml中加入权限声明

//需要在xml中加入权限声明





另外,在android2.2以后,如果服务在ondestroy里加上了start自己,用kill backgroudprocess通常无法结束自己。

还有一种最新发现的方法,利用反射调用forceStopPackage来结束进程

代码如下

[c-sharp] Method forceStopPackage = am.getClass().get*dMethod(“forceStopPackage“, String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, yourpkgname);
Method forceStopPackage = am.getClass().get*dMethod(“forceStopPackage“, String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, yourpkgname);

需要在manifest里加上shareduid定义
[c-sharp] android:sharedUserId=“android.uid.system“
android:sharedUserId=“android.uid.system“

另外加上权限
[c-sharp]




并且采用系统platform签名


因为需要用FORCE_STOP_PACKAGES权限,该权限只赋予系统签名级程序

即可实现强制停止指定程序

还有一种方法 利用linux的kill -9命令
摘自 Zy的技术心得
标签: apk

晨曦 发布于 2013-9-2 06:19

教你去除安卓软件中的广告

方法1

安卓apk软件游戏中的广告如何去除:由于安卓平台的开源性,导致,安卓平台几乎所有的软件游戏中都或多或少的带有广告。这让我们在使用安卓应用的时候感觉非常的不爽,体验非常的差。不过,所有的安卓apk软件游戏的广告都是可以去除的。

下面就教大家怎么用最简单的步骤把广告通通都去掉!所需工具已打包,下载链接在文中。

安装java环境

请登录http://www.java.com/zh_CN/download/windows_xpi.jsp?locale=zh_CN下载最新的java环境,并安装。这一步就不详细叙述了,跟普通程序的安装过程是一样的

下载所需工具

smali —— 解包、打包apk文件

notepad —— 查询文件关键字并替换

apk签名工具

将所有工具解压缩待用

用WinRAR打开需要去广告的apk文件,提取classes.dex



将classes.dex拖到smali文件夹中的解包.bat上

得到classes文件夹

打开notepad(也可以使用editplus)

按Ctrl+F打开搜索替换

选择 在文件中搜索 (Findin Files)

在浏览目录(Directory)里选择classes文件夹

搜索内容(Find what) 填写http://

这时可以看到有很多搜索到的链接 其中有很多就是广告链接

将广告链接删除(只删除引号内的部分)

notepad++会自动保存你做的修改

将classes文件夹拖动到打包.bat上 自动打包

得到修改完成后的classes.dex

将classes.dex拖到apk文件(用winrar打开)里替换原文件

删除apk文件中META-INF里的除MANIFEST.MF外的两个文件

将apk文件移动到拖动到签名工具所在文件夹sign里

拖动到Sign.bat上自动签名

OK!到这里,我们安卓apk软件游戏中的广告就算被我们去除了。怎么样?是不是很简单?哈哈,大家自己动手一遍基本就能学会了。

方法2

这个方法最简单不过了,玩安卓单机游戏时候,把数据关了,这样广告就出不来了,哈哈是不是很简单呢

方法1

安卓apk软件游戏中的广告如何去除:由于安卓平台的开源性,导致,安卓平台几乎所有的软件游戏中都或多或少的带有广告。这让我们在使用安卓应用的时候感觉非常的不爽,体验非常的差。不过,所有的安卓apk软件游戏的广告都是可以去除的。

下面就教大家怎么用最简单的步骤把广告通通都去掉!所需工具已打包,下载链接在文中。

安装java环境

请登录http://www.java.com/zh_CN/download/windows_xpi.jsp?locale=zh_CN下载最新的java环境,并安装。这一步就不详细叙述了,跟普通程序的安装过程是一样的

下载所需工具

smali —— 解包、打包apk文件

notepad —— 查询文件关键字并替换

apk签名工具

将所有工具解压缩待用

用WinRAR打开需要去广告的apk文件,提取classes.dex



将classes.dex拖到smali文件夹中的解包.bat上

得到classes文件夹

打开notepad(也可以使用editplus)

按Ctrl+F打开搜索替换

选择 在文件中搜索 (Findin Files)

在浏览目录(Directory)里选择classes文件夹

搜索内容(Find what) 填写http://

这时可以看到有很多搜索到的链接 其中有很多就是广告链接

将广告链接删除(只删除引号内的部分)

notepad++会自动保存你做的修改

将classes文件夹拖动到打包.bat上 自动打包

得到修改完成后的classes.dex

将classes.dex拖到apk文件(用winrar打开)里替换原文件

删除apk文件中META-INF里的除MANIFEST.MF外的两个文件

将apk文件移动到拖动到签名工具所在文件夹sign里

拖动到Sign.bat上自动签名

OK!到这里,我们安卓apk软件游戏中的广告就算被我们去除了。怎么样?是不是很简单?哈哈,大家自己动手一遍基本就能学会了。

方法2

这个方法最简单不过了,玩安卓单机游戏时候,把数据关了,这样广告就出不来了,其实很简单,懂点apk的人都会发现去除

标签: apk

晨曦 发布于 2013-9-2 06:13

最新评论


链接

搜索