`

android应用实现重启系统

 
阅读更多

1.在AndroidManifest.xml文件的manifest标签中加入一条Android:sharedUserId="android.uid.system"

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ipanel.update"
    android:versionCode="1"
    android:versionName="1.0" 
    android:sharedUserId="android.uid.system" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="15" />   
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
	<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

2.在MainActivity中,有以下2种方式实现:

/*Intent reboot = new Intent(Intent.ACTION_REBOOT);  
&nbsp;&nbsp;&nbsp;&nbsp;reboot.putExtra("nowait", 1);  
&nbsp;&nbsp;&nbsp;&nbsp;reboot.putExtra("interval", 1);  
&nbsp;&nbsp;&nbsp;&nbsp;reboot.putExtra("window", 0);  
&nbsp;&nbsp;&nbsp;&nbsp;sendBroadcast(reboot); */ 
PowerManager pManager=(PowerManager) getSystemService(Context.POWER_SERVICE);
pManager.reboot("");

 

整个代码:

 

package com.demo.reboot;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.PowerManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Button rebootBtn = (Button) findViewById(R.id.button2);
		rebootBtn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				new AlertDialog.Builder(MainActivity.this)
				.setTitle("提示")
				.setMessage("确认重启么?")
				.setPositiveButton("重启", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						// 重启
						/*String str = "重启";
						try {
							str = runCmd("reboot", "/system/bin");
						} catch (IOException e) {
							e.printStackTrace();
						}*/
						/*Intent reboot = new Intent(Intent.ACTION_REBOOT);  
						reboot.putExtra("nowait", 1);  
						reboot.putExtra("interval", 1);  
						reboot.putExtra("window", 0);  
						sendBroadcast(reboot); */ 
						PowerManager pManager=(PowerManager) getSystemService(Context.POWER_SERVICE);
						pManager.reboot("重启");
						System.out.println("execute cmd--> reboot\n" + "重启");
					}
				})
				.setNegativeButton("取消", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						// 取消当前对话框
						dialog.cancel();
					}
				}).show();
			}
			
		});
	}

}

 

3.给apk签名

签名方法:
1)添加权限
    在AndroidManifest.xml文件下添加android:sharedUserId="android.uid.system" 。

2)在Eclipse中导出无签名的应用文件
   在工程中:右键->Android Tools -> Export Unsigned Application Package导出应用

3)找出系统签名密钥
   系统密钥为:platform.pk8和platform.x509.pem
   路径: build\target\product\security

4)找出系统签名工具
   工具为:signApk.jar 
   路径:/out/host/linux-x86/framework/ signApk.jar

5)开始签名
  将第2、3、4步找到的无签名应用、platform.pk8、platform.x509.pem和signApk.jar放到同一文件夹下如F:\sign。
  打开 dos 操作界面,定们到F:\sign,输入命令:
  Java -jar signapk.jar platform.x509.pem platform.pk8 a.apk b.apk 
 (a.apk 为未签名应用 b.apk 为签名之后应用)

分享到:
评论

相关推荐

    Android 代码实现重启

    在Android系统中,实现应用程序或...以上就是关于Android代码实现重启的相关知识点,包括重启应用程序和全局系统重启的实现方式,以及需要注意的事项。希望这些信息能帮助你更好地理解和处理Android开发中的重启需求。

    Android 重启系统设备 或APP

    首先,我们要区分两种重启方式:重启系统设备(手机或平板电脑)和重启单个应用程序。这两种方法有不同的实现途径。 一、重启系统设备 1. 用户界面:用户可以通过长按电源键,然后选择“重启”选项来重启设备。这是...

    android 定时关机 重启

    在Android系统中,实现定时关机和重启功能主要涉及到对系统的底层操作,这通常需要root权限。以下将详细讲解如何在Android中实现这些功能。 首先,我们要了解Android系统的启动流程。开机时,Android会通过...

    让Android系统发生重启的应用

    随着全局引用数量的增加,Android系统的内存资源被耗尽,系统为了防止进一步的损坏,可能会选择自动重启。 接下来,我们来分析可能导致这个问题的代码结构: 1. **JNI注册**:在JNI函数中,使用`NewGlobalRef()`...

    android关机重启功能实现

    下面将详细讲解如何在Android应用中实现这一功能。 首先,我们要理解Android的权限模型。由于涉及到设备的安全性,Android系统对于关机和重启这类操作进行了严格的限制。在AndroidManifest.xml文件中,你需要声明`...

    Android-AppManager如何优雅的退出应用和处理崩溃异常自动重启

    在Android应用开发中,确保应用的稳定性和用户体验是至关重要的。`AppManager`是一个常见的工具类,用于管理和控制应用程序的生命周期。本篇文章将详细探讨如何使用`AppManager`优雅地退出应用,以及如何处理崩溃...

    Android 关机和重启(reboot and shutdown)源码.zip

    它们涉及到系统的生命周期管理和电源管理,对于理解和优化Android应用的性能以及系统级操作有着深远的影响。本项目提供了Android关机和重启的源码,旨在帮助开发者深入理解这两个过程的工作原理。 首先,我们要知道...

    android重启程序

    1. **应用生命周期**:Android应用的生命周期是由系统控制的,主要与用户的交互和设备资源管理有关。例如,当用户离开一个Activity,系统可能会暂停或销毁它来释放资源。在系统内存紧张时,甚至可能销毁整个应用。 ...

    Android 实现静默安装并自动重启(需要root)

    在Android系统中,静默安装是指在用户无感知的情况下,后台自动执行APK应用程序的安装过程。这通常需要设备具有root权限,因为常规情况下,Android系统出于安全考虑并不允许非系统应用进行静默安装。本篇文章将深入...

    android应用内和系统设置两种设置多语言国际化

    本教程将详细介绍如何在Android应用内以及通过系统设置实现多语言国际化,涵盖了简体中文、繁体中文和英文的切换。 首先,理解Android的国际化机制。Android系统基于资源的本地化,也就是说,开发者需要为每种语言...

    Android系统关机与重启

    此应用被做成系统用,拥有系统权限,能实现Android系统关机与重启

    android 捕获异常重启APP

    "android 捕获异常重启APP"这一主题就是关于如何在Android应用中实现这种功能的讨论。 首先,要捕获异常,我们需要在应用的主进程中设置全局的异常处理器。Android系统提供了`Thread.UncaughtExceptionHandler`接口...

    Android代码-关机和重启rebootandshutdown源码.zip

    在Android应用层,这通常涉及到BroadcastReceiver监听ACTION_SHUTDOWN或ACTION_REBOOT广播事件。 2. **应用程序框架层**:当收到关机或重启请求时,系统会发送一个系统级广播。注册了相应广播接收器的应用程序会...

    Android-这是个方便切换夜间模式的库利用官方夜间模式同时不用重启Activity

    标题提到的“Android-这是个方便切换夜间模式的库利用官方夜间模式同时不用重启Activity”是一个旨在简化Android应用夜间模式切换的第三方库。这个库允许开发者在不重新启动Activity的情况下实现夜间模式的即时切换...

    Android 控制手机重启

    对于开发和测试环境,可以通过adb(Android Debug Bridge)工具发送命令到设备来实现重启。例如,可以使用`adb shell reboot`命令,但这同样需要设备连接到电脑并且开启USB调试模式。 4. 使用Runtime类: 在Java...

    android 实现应用内语言切换

    在Android应用开发中,实现应用内语言切换是一项重要的功能,尤其对于全球化的产品而言。这个"android 实现应用内语言切换"的Demo提供了高效且实用的方法,解决了其他在线方案可能存在的问题。下面,我们将深入探讨...

    Android关机和重启(reboot and shutdown)源码.rar

    - **发起请求**: 在Android应用层,通过调用`SystemServer`服务提供的API(如`reboot()`或`shutdown()`)来发起关机或重启请求。 - **权限检查**: 请求会被检查是否有足够的权限执行该操作。 - **系统服务通知**:...

    Android如何保证自己的服务被系统kill后又被系统重启?

    在Android系统中,服务(Service)是应用程序组件之一,它可以在后台执行长时间运行的操作而无需与用户交互。然而,由于Android系统的资源管理机制,当设备内存紧张时,系统可能会杀死后台服务来回收内存。要确保...

    android实现关机和重启.zip

    本文将详细解析如何在Android应用层通过编程实现这一目标,并结合提供的"android实现关机和重启"源码进行分析。 首先,我们要明白在Android中,应用程序通常没有足够的权限直接执行关机或重启操作。这是因为这些...

    android自动重启测试工具

    在Android系统中,进行自动重启测试是评估应用稳定性和设备硬件耐久性的重要步骤。"Android自动重启测试工具"就是专为此目的设计的...通过深入理解和有效利用这类工具,我们可以构建更加稳定、高效的Android应用程序。

Global site tag (gtag.js) - Google Analytics