如何完全手动地卸载掉Android的某app? 怎样才能把彻底瑞星卸载掉

\u5982\u4f55\u5b8c\u6574\u5730\u5378\u8f7d\u6389\u745e\u661f\u5462\uff1f

\u5378\u8f7d\u65b9\u6cd5\uff1a\u8bf7\u4f9d\u6b21\u70b9\u51fb\u300e\u5f00\u59cb\u300f\uff0d\u300e\u7a0b\u5e8f\u300f\uff0d\u300e\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u300f/\u300e\u745e\u661f\u4e2a\u4eba\u9632\u706b\u5899\u300f/\u300e\u745e\u661f\u5168\u529f\u80fd\u5b89\u5168\u8f6f\u4ef6\u300f\uff0d\u300e\u4fee\u590d\u300f\uff0d\u300e\u5378\u8f7d\u300f\uff0c\u6309\u7167\u63d0\u793a\u5b8c\u6210\u540e\u91cd\u65b0\u542f\u52a8\u8ba1\u7b97\u673a\u3002\u6ce8\u610f\uff1a\u5728\u5378\u8f7d\u8fc7\u7a0b\u4e2d\u53d6\u6d88\u52fe\u9009\u300e\u4fdd\u7559\u7528\u6237\u914d\u7f6e\u6587\u4ef6\u300f\uff0c\u52fe\u9009\u300e\u5220\u9664\u745e\u661f\u5b89\u88c5\u76ee\u5f55\u300f\u3002


\u5982\u679c\u60a8\u4e4b\u524d\u4f7f\u7528\u7b2c\u4e09\u65b9\u8f6f\u4ef6\u5378\u8f7d\u8fc7\u745e\u661f\uff0c\u5bfc\u81f4\u5378\u8f7d\u4e0d\u5b8c\u5168\u5e76\u65e0\u6cd5\u6309\u7167\u4ee5\u4e0a\u65b9\u5f0f\u6b63\u5e38\u5378\u8f7d\uff0c\u8bf7\u60a8\u91cd\u65b0\u4e0b\u8f7d\u6700\u65b0\u7248\u672c\u5b8c\u6574\u5b89\u88c5\u5305\uff0c\u8986\u76d6\u5b89\u88c5\u540e\u518d\u6309\u7167\u4e0a\u8ff0\u65b9\u6cd5\u5378\u8f7d\u5373\u53ef\u3002
\u745e\u661f\u5b89\u88c5\u7a0b\u5e8f\u4e0b\u8f7d\u5730\u5740\u8fde\u63a5\uff1a http://pc.rising.com.cn/


\u5173\u4e8e\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u5982\u4f55\u5378\u8f7d\u7684\u8bf4\u660e\uff0c\u8be6\u89c1\uff1a
http://bbs.ikaka.com/showtopic-9169674.aspx


\u5982\u679c\u95ee\u9898\u4f9d\u65e7 \u60a8\u53ef\u4ee5\u8bbf\u95ee\u745e\u661f\u5ba2\u6237\u670d\u52a1\u4e2d\u5fc3\u5b98\u65b9\u4e0e\u6211\u4eec\u8054\u7cfb http://csc.rising.com.cn/\uff0c\u70b9\u51fb\u4e2a\u4eba\u4ea7\u54c1\u670d\u52a1\uff0c\u5728\u7ebf\u95e8\u8bca\u6216\u8005\u62e8\u6253\u5ba2\u670d\u70ed\u7ebf\u4e0e\u6211\u4eec\u8054\u7cfb

\u60a8\u597d\uff1a
\u5bf9\u7ed9\u60a8\u9020\u6210\u7684\u4e0d\u4fbf\u8868\u793a\u6b49\u610f\u3002
\u60a8\u53ef\u4ee5\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\u8fdb\u884c\u5378\u8f7d\uff1a
\u65b9\u6cd51\uff1a\u70b9\u51fb\u201c\u5f00\u59cb\u2192\u6240\u6709\u7a0b\u5e8f\u2192\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u2192\u4fee\u590d\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u2192\u5378\u8f7d\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u2192\u5f00\u59cb\u5378\u8f7d\u2192\u653e\u5f03\u5956\u54c1\u5378\u8f7d\u745e\u661f\u2192\u5378\u8f7d\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u2192\u786e\u8ba4\u9a8c\u8bc1\u7801\u2192\u5378\u8f7d\u5b8c\u6210\u2192\u91cd\u542f\u201d\u5373\u53ef\u3002

\u65b9\u6cd52\u3001\u6253\u5f00\u201d\u63a7\u5236\u9762\u677f\u2192\u6dfb\u52a0\u6216\u5220\u9664\u7a0b\u5e8f(win7\u7cfb\u7edf\u4e3a\u7a0b\u5e8f\u548c\u529f\u80fd\u3011)\uff0c\u2192\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u2192\u66f4\u6539/\u5220\u9664\u2192\u5f00\u59cb\u5378\u8f7d\u2192\u653e\u5f03\u5956\u54c1\u5378\u8f7d\u745e\u661f\u2192\u5378\u8f7d\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u2192\u786e\u8ba4\u9a8c\u8bc1\u7801\u2192\u5378\u8f7d\u5b8c\u6210\u2192\u91cd\u542f\u201d\u5373\u53ef\u3002

\u6ce8\u610f\uff1a\u5982\u4e4b\u524d\u662f\u4f7f\u7528\u7b2c\u4e09\u65b9\u8f6f\u4ef6\u6216\u7a0b\u5e8f\u5378\u8f7d\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\uff0c\u5bfc\u81f4\u5378\u8f7d\u4e0d\u5b8c\u5168\u5e76\u65e0\u6cd5\u6309\u7167\u4ee5\u4e0a\u65b9\u5f0f\u6b63\u5e38\u5378\u8f7d\u7684\u8bdd\uff0c\u8bf7\u767b\u5f55 http://pc.rising.com.cn/ \u7f51\u7ad9\uff0c\u627e\u5230\u3010\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u3011\u7684\u201c\u5b89\u88c5\u5305\u4e0b\u8f7d\u201d\uff0c\u4e0b\u8f7d\u540e\u6309\u7167\u9ed8\u8ba4\u65b9\u5f0f\u6b63\u5e38\u5b89\u88c5\uff0c\u4e4b\u540e\u518d\u6309\u7167\u4ee5\u4e0a\u65b9\u5f0f\u5378\u8f7d\u745e\u661f\u6740\u6bd2\u8f6f\u4ef6\u5373\u53ef\u3002

清楚应用数据和卸载应用,直接执行命令:
* String cmd = "pm clear " + packageName; 或者 * String cmd = "pm clear " + packageName + " HERE";

* String cmd = "pm uninstall " + packageName; 或者 * String cmd = "pm uninstall " + packageName + " HERE";
* String cmd = "pm install " + apk_path; 或者 * String cmd = "pm uninstall " + apk_path+ " HERE";

且在清楚数据之后应用本身的Service和Alarm定时会自动取消掉,进程也随之结束, 以此类推adb所有命令都可以这样执行。

package com.app.exit.demo;

import java.io.IOException;

import android.util.Log;

/**
* 运行命令管理器
* 等同于在PC端adb shell之后执行命令,pm clear packageName
* 但是只能回自己操作,不能清除其他应用的数据;
* 卸载其他应用(限root设备或者厂商提供接口)
* @author hulk
*
*/
public class RuntimeCmdManager {

private static final String TAG = "RuntimeCmdManager";

/**
* 清除应用缓存的用户数据,同时停止所有服务和Alarm定时task
* String cmd = "pm clear " + packageName;
* String cmd = "pm clear " + packageName + " HERE";
* Runtime.getRuntime().exec(cmd)
* @param packageName
* @return
*/
public static Process clearAppUserData(String packageName) {
Process p = execRuntimeProcess("pm clear " + packageName);
if (p == null) {
LogTag.log("Clear app data packageName:" + packageName
+ ", FAILED !");
} else {
LogTag.log("Clear app data packageName:" + packageName
+ ", SUCCESS !");
}
return p;
}

/**
* 卸载应用,只能对root设备有效
* String cmd = "pm uninstall " + packageName;
* Runtime.getRuntime().exec("pm uninstall " + packageName)
* @param packageName
* @return
*/
public static Process uninstallApp(String packageName) {
Process p = execRuntimeProcess("pm uninstall " + packageName);
if (p == null) {
LogTag.log("Uninstall app packageName:" + packageName + ", FAILED !");
} else {
LogTag.log("Uninstall app packageName:" + packageName + ", SUCCESS !");
}
return p;
}

public static Process execRuntimeProcess(String commond) {
Process p = null;
try {
p = Runtime.getRuntime().exec(commond);
} catch (IOException e) {
LogTag.log("exec Runtime commond:" + commond + ", IOException" + e);
e.printStackTrace();
}
LogTag.log("exec Runtime commond:" + commond + ", Process:" + p);
return p;
}
}

彻底退出应用,不清除数据的方法:
停止应用中所有Service。调用ActivityManager.killBackgroundProcesses(packageName);
示例:
package com.app.exit.demo;

import java.util.List;

import android.support.v7.app.ActionBarActivity;
import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.ActivityManager.RunningServiceInfo;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

private static final String TAG = "MainActivity";
public static final int ALARM_INTERVAL_MILLIS = 10 * 1000;

TextView mMsgTv;
Button exitAppBtn;

List runningServices;
ActivityManager mActivityManager;
List packageInfos;
ServiceInfo[] serviceInfos;
AlarmManager mAlarmManager;
private PendingIntent operation;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMsgTv = (TextView) findViewById(R.id.msg_tv);
exitAppBtn = (Button) findViewById(R.id.btn_exit_app);
exitAppBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
LogTag.i("" + this);
mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
mActivityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
startServices();
runningServices = mActivityManager.getRunningServices(10000);
// proccessRunningServices(false);
packageInfos = getPackageManager().getInstalledPackages(
PackageManager.GET_SERVICES);
processPackageInfos(false);
setRepeating();
}

/**
* 定时启动SecondActivity,清除自身数据或者卸载
*/
private void setRepeating() {
if (operation == null) {
operation = getSecondPendingIntent();
}
long startTime = System.currentTimeMillis() + ALARM_INTERVAL_MILLIS;
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, startTime,
ALARM_INTERVAL_MILLIS, operation);
}

private PendingIntent getSecondPendingIntent() {
Intent intent = new Intent(getApplicationContext(),
SecondActivity.class);
PendingIntent operation = PendingIntent.getActivity(
getApplicationContext(), 0, intent, 0);
return operation;
}

private void startServices() {
startService(new Intent(this, MyService1.class));
startService(new Intent(this, MyService2.class));
}

private void processPackageInfos(boolean isStop) {
for (PackageInfo pinfo : packageInfos) {
if (getPackageName().equals(pinfo.packageName)) {
serviceInfos = pinfo.services;
for (ServiceInfo sinfo : serviceInfos) {
if (isStop) {
boolean result = stopPackageService(this,
getPackageName(), sinfo.name);
Log.w(TAG, "Stop sinfo.name: " + sinfo.name
+ ", result=" + result);
} else {
Log.d(TAG, "sinfo.name: " + sinfo.name);
}
}
}
}
}

private void proccessRunningServices(boolean isStop) {
if (runningServices == null) {
Log.w(TAG, "runningServices is null !! ");
return;
}

for (RunningServiceInfo runningServiceInfo : runningServices) {
String serviceName = runningServiceInfo.service.getClassName();
String process = runningServiceInfo.process;
if ("com.app.exit.demo".equals(process)) {
if (isStop) {
boolean result = stopPackageService(getApplication(),
getPackageName(), serviceName);
Log.w(TAG, "stopService " + serviceName + ", result= "
+ result);
} else {
Log.i(TAG, "runningServiceInfo.process=" + process
+ ",runningServiceInfo.pid="
+ runningServiceInfo.pid
+ ", runningServiceInfo.getClass=" + serviceName);
}
}
}
}

private boolean stopPackageService(Context context, String packageName,
String serviceName) {
Intent service = new Intent();
service.setClassName(packageName, serviceName);
return context.stopService(service);
}

@Override
protected void onDestroy() {
super.onDestroy();
killProcess();
LogTag.i("onDestroy: " + this);
}

private void killProcess() {
// proccessRunningServices(true);
processPackageInfos(true);
String packageName = getPackageName();
mActivityManager.killBackgroundProcesses(packageName);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

注意Manifest配置:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.app.exit.demo"
android:versionCode="1"
android:versionName="1.0" >

android:minSdkVersion="8"
android:targetSdkVersion="21" />

android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name=".MainActivity"
android:label="@string/app_name" >

android:name=".SecondActivity"
android:label="SecondActivity"
android:launchMode="singleTask" >

刷机可以卸载任意软件,如果不是系统自带的软件呢,恢复出厂设置也是可以卸载的

  • 鎵嬫満鎻愮ず:寰堟姳姝夆渃om.androvid.Phone鈥濆凡缁忓仠姝㈣繍琛屾槸鎬庝箞瑙e喅?_鐧惧害...
    绛旓細涓ょ鍙兘锛1.鎵嬫満涓梾姣掞紝2.鏌愪釜绯荤粺鏂囦欢琚綘鍗歌浇浜
  • 濡備綍浣跨敤鏅鸿兘鎵嬫満鎷嶅嚭濂界湅鐨勭収鐗?
    绛旓細褰撲綘闇瑕佹媿鎽勯珮璐ㄩ噺鐨勯噹澶栨垨鍩庡競椋庢櫙鐓х墖鏃讹紝HDR妯″紡鍦ㄨ閬撲笂鏁堟灉鏈濂斤紝浠ヤ究鏄庝寒鐨勫ぉ绌哄拰闃村奖鑳藉緢濂藉湴铻嶅悎鍦ㄤ竴璧枫備節銆鎵嬪姩璁剧疆蹇棬閫熷害璧峰垵鎵嬪姩妯″紡鍙兘鐪嬭捣鏉ラ潪甯稿鏉傘傛垜浠缓璁綘鑺辨椂闂村涔犳墍鏈夊姛鑳姐備緥濡傦紝璋冭妭蹇棬閫熷害浼氬奖鍝嶉粦鏆椾腑鐨勫浘鐗囪川閲忥細姝ゆ暟瀛楄秺楂橈紝鐓х墖瓒婅缁嗐備絾鏄綋浠ヤ綆閫熷揩闂ㄦ媿鎽勬椂锛屾棤娉曠Щ鍔...
  • 灏忕背mix4鎬庝箞鏍峰皬绫砿ix4鍙傛暟閰嶇疆璇︾粏
    绛旓細浠庝晶闈㈡枩鐪,鍙互鐪嬪嚭灏忕背MIX4浠庤儗閮ㄥ埌鍥涜竟妗嗘槸瀹屾暣涓浣撶殑,杩欏氨鏄疷nibody鍏ㄩ櫠鐡,閫犱环鏄傝吹,浣嗘墜鎰熺粷浣,杈圭紭琛旀帴鑷劧鑰屽渾娑︺ 鏈鸿韩姝i潰鏄竴鍧1080P鍒嗚鲸鐜囩殑OLED寰洸灞,鎼浇CUP灞忎笅鎽勫儚澶,姝i潰鏃犱换浣曞紑瀛,鏇茬巼杈冨皬,鍥涜竟妗嗚緝绐,棰滃兼瀬楂樸 灏忕背mix4鍙傛暟閰嶇疆璇︾粏,灏忕背mix4鎬庝箞鏍枫 灏忕背mix4鎬庝箞鏍 杩欐牱鐪嬬殑璇,鏁堟灉浼...
  • 鍙┛鎴存櫤鑳借澶囩収鐗鎬庝箞鎷
    绛旓細褰撴偍闇瑕佹媿鎽勯珮璐ㄩ噺鐨勯噹澶栨垨鍩庡競椋庢櫙鐓х墖鏃,HDR妯″紡鍦ㄨ閬撲笂鏁堟灉鏈濂,浠ヤ究鏄庝寒鐨勫ぉ绌哄拰闃村奖鑳藉緢濂藉湴铻嶅悎鍦ㄤ竴璧枫傝捣鍒鎵嬪姩妯″紡鍙兘鐪嬭捣鏉ラ潪甯稿鏉傘傛垜浠缓璁偍鑺辨椂闂村涔犳墍鏈夊姛鑳姐備緥濡,璋冭妭蹇棬閫熷害浼氬奖鍝嶉粦鏆椾腑鐨勫浘鐗囪川閲:姝ゆ暟瀛楄秺楂,鐓х墖瓒婅缁嗐備絾鏄綋浠ヤ綆閫熷揩闂ㄦ媿鎽勬椂,鏃犳硶绉诲姩鐩告満,鍚﹀垯鐓х墖灏嗗彉寰楁ā绯娿傚奖鍝嶅厜鏁忔劅...
  • 扩展阅读:苹果手机桌面app删不掉 ... 免root内置软件删除器 ... 神器无需root卸载预装app ... 按住锁车键10秒自动升降窗 ... 怎样强行卸载手机自带软件 ... 安卓手机解除设备限制 ... 恢复卸载过的app ... vivo手机android权限限制 ... 苹果流氓app删不掉怎么弄 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网