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); reboot.putExtra("nowait", 1); reboot.putExtra("interval", 1); reboot.putExtra("window", 0); 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开发中的重启需求。
首先,我们要区分两种重启方式:重启系统设备(手机或平板电脑)和重启单个应用程序。这两种方法有不同的实现途径。 一、重启系统设备 1. 用户界面:用户可以通过长按电源键,然后选择“重启”选项来重启设备。这是...
在Android系统中,实现定时关机和重启功能主要涉及到对系统的底层操作,这通常需要root权限。以下将详细讲解如何在Android中实现这些功能。 首先,我们要了解Android系统的启动流程。开机时,Android会通过...
随着全局引用数量的增加,Android系统的内存资源被耗尽,系统为了防止进一步的损坏,可能会选择自动重启。 接下来,我们来分析可能导致这个问题的代码结构: 1. **JNI注册**:在JNI函数中,使用`NewGlobalRef()`...
下面将详细讲解如何在Android应用中实现这一功能。 首先,我们要理解Android的权限模型。由于涉及到设备的安全性,Android系统对于关机和重启这类操作进行了严格的限制。在AndroidManifest.xml文件中,你需要声明`...
在Android应用开发中,确保应用的稳定性和用户体验是至关重要的。`AppManager`是一个常见的工具类,用于管理和控制应用程序的生命周期。本篇文章将详细探讨如何使用`AppManager`优雅地退出应用,以及如何处理崩溃...
它们涉及到系统的生命周期管理和电源管理,对于理解和优化Android应用的性能以及系统级操作有着深远的影响。本项目提供了Android关机和重启的源码,旨在帮助开发者深入理解这两个过程的工作原理。 首先,我们要知道...
1. **应用生命周期**:Android应用的生命周期是由系统控制的,主要与用户的交互和设备资源管理有关。例如,当用户离开一个Activity,系统可能会暂停或销毁它来释放资源。在系统内存紧张时,甚至可能销毁整个应用。 ...
在Android系统中,静默安装是指在用户无感知的情况下,后台自动执行APK应用程序的安装过程。这通常需要设备具有root权限,因为常规情况下,Android系统出于安全考虑并不允许非系统应用进行静默安装。本篇文章将深入...
本教程将详细介绍如何在Android应用内以及通过系统设置实现多语言国际化,涵盖了简体中文、繁体中文和英文的切换。 首先,理解Android的国际化机制。Android系统基于资源的本地化,也就是说,开发者需要为每种语言...
此应用被做成系统用,拥有系统权限,能实现Android系统关机与重启
"android 捕获异常重启APP"这一主题就是关于如何在Android应用中实现这种功能的讨论。 首先,要捕获异常,我们需要在应用的主进程中设置全局的异常处理器。Android系统提供了`Thread.UncaughtExceptionHandler`接口...
在Android应用层,这通常涉及到BroadcastReceiver监听ACTION_SHUTDOWN或ACTION_REBOOT广播事件。 2. **应用程序框架层**:当收到关机或重启请求时,系统会发送一个系统级广播。注册了相应广播接收器的应用程序会...
标题提到的“Android-这是个方便切换夜间模式的库利用官方夜间模式同时不用重启Activity”是一个旨在简化Android应用夜间模式切换的第三方库。这个库允许开发者在不重新启动Activity的情况下实现夜间模式的即时切换...
对于开发和测试环境,可以通过adb(Android Debug Bridge)工具发送命令到设备来实现重启。例如,可以使用`adb shell reboot`命令,但这同样需要设备连接到电脑并且开启USB调试模式。 4. 使用Runtime类: 在Java...
在Android应用开发中,实现应用内语言切换是一项重要的功能,尤其对于全球化的产品而言。这个"android 实现应用内语言切换"的Demo提供了高效且实用的方法,解决了其他在线方案可能存在的问题。下面,我们将深入探讨...
- **发起请求**: 在Android应用层,通过调用`SystemServer`服务提供的API(如`reboot()`或`shutdown()`)来发起关机或重启请求。 - **权限检查**: 请求会被检查是否有足够的权限执行该操作。 - **系统服务通知**:...
在Android系统中,服务(Service)是应用程序组件之一,它可以在后台执行长时间运行的操作而无需与用户交互。然而,由于Android系统的资源管理机制,当设备内存紧张时,系统可能会杀死后台服务来回收内存。要确保...
本文将详细解析如何在Android应用层通过编程实现这一目标,并结合提供的"android实现关机和重启"源码进行分析。 首先,我们要明白在Android中,应用程序通常没有足够的权限直接执行关机或重启操作。这是因为这些...
在Android系统中,进行自动重启测试是评估应用稳定性和设备硬件耐久性的重要步骤。"Android自动重启测试工具"就是专为此目的设计的...通过深入理解和有效利用这类工具,我们可以构建更加稳定、高效的Android应用程序。