真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

android關機,android關機卸載驅動

android 中如何實現(xiàn)關機,重啟

關機命令

成都創(chuàng)新互聯(lián)公司專注于象州網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供象州營銷型網站建設,象州網站制作、象州網頁設計、象州網站官網定制、成都微信小程序服務,打造象州網絡公司原創(chuàng)品牌,更為您提供象州網站排名全網營銷落地服務。

Runtime.getRuntime().exec("su -c \"/system/bin/shutdown\"");

重啟命令

Runtime.getRuntime().exec("su -c \"/system/bin/reboot\"");

注意:手機必須root,否則這兩個命令無法執(zhí)行。

車載android正在啟動一直在正在優(yōu)化怎樣強制關機

要強制關機的話,建議把車熄火了試試應該就可以斷電了,如果不行還是要強制關機的,可以打開發(fā)動機的電擊,把線頭拔掉就可以了

個人建議如果出現(xiàn)問題還是要去4s店找專門的人進行處理這樣會更加保險和有 保障。

升個級試試吧,是不是某個優(yōu)化程序優(yōu)化不了,卡住了,找個比你現(xiàn)在版本高的升級一下,068還可以

建議重新卡刷068全包一次。平行刷機不會丟失數(shù)據。如果會線刷的話,線刷更穩(wěn)定。(但是一定要下載正版的,不然會有很多廣告

android手機關機是不是假關機

您好,安卓手機關機就是關機,軟件停止運行,設備停止運行,手機處于關機狀態(tài)。

android 怎么讓設備關機

//廣播方式關機重啟

case R.id.shutdown_btn1:

Log.v(TAG, "broadcast-shutdown");

Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);

intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);

//其中false換成true,會彈出是否關機的確認窗口

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

break;

case R.id.reboot_btn1:

Log.v(TAG, "broadcast-reboot");

Intent intent2 = new Intent(Intent.ACTION_REBOOT);

intent2.putExtra("nowait", 1);

intent2.putExtra("interval", 1);

intent2.putExtra("window", 0);

sendBroadcast(intent2);

break;

android 關機重啟流程

在PowerManager的API文檔中,給出了一個關機/重啟接口:

public void reboot (String reason)

對于這個接口的描述很簡單,就是幾句話。

接口的作用就是重啟設備,而且,就算重啟成功了也沒有返回值。

需要包含REBOOT權限,也就是android.permission.REBOOT

唯一參數(shù)reason代表需要的特定重啟模式,比如recovery,當然也可以為null。

1.frameworks/base/core/java/android/os/PowerManager.java

2.frameworks/base/core/java/android/os/IPowerManager.aidl

3.frameworks/base/services/java/com/android/server/PowerManagerService.java

4.frameworks/base/services/java/com/android/server/pm/ShutdownThread.java

5.frameworks/base/services/jni/com_android_server_PowerManagerService.cpp

---------------------》

6.system/core/libcutils/android_reboot.c

7.bionic/libc/unistd/reboot.c

8.__reboot通過syscall來到內核

9.kernel/sys.c

frameworks/base/core/java/android/os/PowerManager.java

mService為IPowerManager Binder接口服務。

frameworks/base/core/java/android/os/IPowerManager.aidl

frameworks/base/services/java/com/android/server/PowerManagerService.java

frameworks/base/services/java/com/android/server/pm/ShutdownThread.java

這里說明是需要重啟,且不是安全模式,重啟參數(shù)為傳遞下來的reason,shutdownInner的confirm參數(shù)是用來設置是否有確認提示框的,通過reboot接口調用重啟是沒有的,為false。

重啟的實現(xiàn)在run()中,因為ShutdownThread是Thread的擴展,所以run會自動運行。

frameworks/base/services/java/com/android/server/pm/ShutdownThread.java

在重啟前會將重啟原因寫入sys.shutdown.requested,如果沒有則為空,如果是安全模式還會將persist.sys.safemode置1,之后會進行一些關機前的預處理,關閉ActivityManager以及MountService,最終調用rebootOrShutdown進行關機操作。

如果確認重啟,則調用PowerManagerService的lowLevelReboot函數(shù),參數(shù)就是傳遞下來的reason,稍后分析。如果不是重啟,即mReboot=false,那就是需要關機了,在shutdown函數(shù)中就能夠知道。

frameworks/base/services/java/com/android/server/PowerManagerService.java

frameworks/base/services/jni/com_android_server_PowerManagerService.cpp

可以看到無論是關機還是重啟,都是調用android_reboot來實現(xiàn)的,只是參數(shù)不一樣而已。

system/core/libcutils/android_reboot.c

以reboot recovery為例,arg即為recovery,所在在第五步的時候會傳入ANDROID_RB_RESTART2。到了android_reboot函數(shù)中,會看到這樣的定義#ifdef RECOVERY_PRE_COMMAND,即屬于重啟前會執(zhí)行的命令,如果定義了就會執(zhí)行。

下面也是做了一些關機重啟前的預處理工作,sync()作用是將緩存中的信息寫入磁盤,以免程序異常結束導致文件被損壞,linux系統(tǒng)關機前會做幾次這樣的動作;而remount_ro()作用是通過調用emergency_remount()強制將文件系統(tǒng)掛載為只讀,不再允許任何寫入操作,同時會通過檢查/proc/mounts的設備狀態(tài)來確認是否當前的所有寫入工作已經完成,這個檢查過程是阻塞操作。

接下來才是對參數(shù)的解析處理:

1)普通重啟 ANDROID_RB_RESTART, reason = RB_AUTOBOOT;

2)關機 ANDROID_RB_POWEROFF, 無需reason,直接調用reboot進行關機;

3)帶參數(shù)的特殊重啟 ANDROID_RB_RESTART2, reason 將為默認值 -1

這里又出現(xiàn)一個#ifdef RECOVERY_PRE_COMMAND_CLEAR_REASON,如果定義了它,則無論上層傳下來的參數(shù)是什么樣的,最終都只是普通重啟而已。定義它的方式是在BoardConfig.mk中加入TARGET_RECOVERY_PRE_COMMAND_CLEAR_REASON := true,應該有廠商會喜歡這么做的,畢竟除了普通重啟,都可能帶給用戶一定的風險。

最后會對reason進行一個檢測,那么通過上邊的分析,其實只有帶參數(shù)的特殊重啟才會為-1,而不等于-1的情況中有普通重啟和關機,而關機已經自行解決了……所以,不等于-1的情況到了這里也只有普通重啟了。最終這里就是區(qū)分普通重啟與特殊重啟的地方了。這里再插入一個問題,其他的幾個cmd都是什么值呢?答案在bionic/libc/include/sys/reboot.h中:

reboot(reason) - reboot(RB_AUTOBOOT) - __reboot( LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART, NULL )

__reboot通過syscall來到內核bionic/libc/arch-arm/syscalls/__reboot.S

其被指定了一個固定的偏移量,在被調用的時候就是通過這個偏移量去內核中尋找對應的入口的,由此可見,內核中一定有著相同的定義,否則將不能成功調用。內核中對syscall偏移量的定義在內核源碼中的arch/arm/include/asm/unistd.h,相關信息完全一致。

已經找到了內核中的對應映射,那么下一步就要去找尋真正的實現(xiàn)函數(shù)了,在include/asm-generic/unistd.h中可以找到內核對__NR_reboot的syscall函數(shù)映射,即

同時,能夠發(fā)現(xiàn)如此溫馨的一幕,內核已經指引我們下一步該去哪里尋找sys_reboot,即kernel/sys.c。

include/linux/syscalls.h

與__reboot的調用參數(shù)一致。

進入sys.c文件后,并沒有找到名為sys_reboot的函數(shù),而通過仔細查找,發(fā)現(xiàn)一個很有趣的函數(shù),其定義為SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg),對比__reboot的參數(shù),能夠符合。究竟是不是這個函數(shù)?

同樣在include/linux/syscalls.h文件中,能夠找到這樣幾個定義:

而pm_power_off為空的話,就把用戶的關機命令轉換為掛起:

arch/arm/kernel/process.c

pm_power_off = msm_pm_power_off;

SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg)

這個過程是用reboot_mutex互斥鎖來進行保護的,以保證同一時間只可能有一個解析過程,避免沖突。

bionic/libc/include/sys/reboot.h 中可以看到android定義的啟動方式

RESTART

POWER_OFF

RESTART2

對框架進行賦值,qcom 平臺 845上已經不是這函數(shù),自己查找

arm_pm_restart = msm_pm_restart;

下面是qcom 實現(xiàn),每個平臺不同

可以在跟蹤這個流程的過程中會發(fā)現(xiàn),確實是有存在關機的相關接口的。那么關機該怎么用呢?

frameworks/base/services/java/com/android/serverBatteryService.java

重啟方式: 最后就是設定寄存器,Uboot 解析不同寄存器的值進入不同的啟動模式

recovery 如果傳下來的字符串是recovery那么,就在RTC寄存器里設置某個特定值,當uboot里讀取RTC寄存器的時候如果獲取了這個特定值,那就可以起recovery這個動作了。

Ref:

上面主要講到流程,在實際開發(fā)中, 主動調用系統(tǒng)開機關機如何做

(Ref: )

一. 發(fā)送系統(tǒng)廣播方式

二. 通過init.rc啟動系統(tǒng)服務來運行sh文件

三. Runtime調用Linux-shell

四 . PowerManager reboot以及反射調用PowerManagerService shutdown

五.使用ShutdownThread (嘗試不成功,但想法覺得可行)

Intent.java位于源碼/frameworks/base/core/java/android/content/Intent.java下面

腳本方式,實際都是基于指令的

使用PowerManager 或ShutdownThread 都是基于關機流程

android怎么樣實現(xiàn)自動開關機

1.設置-備份與重置-自動開/關機,分別滑動開啟“自動開機”和“自動關機”-然后設置自動開機/關機的“時間”及“天數(shù)”即可。

2.部分早期上市的C網手機:設定-關于手機-自動電源開/關-打鉤即可。

3.若您的機器不支持定時開關機,但支持關機鬧鐘,設置關機鬧鐘后,當鬧鐘響鈴前一分鐘手機會自動開機。


網站標題:android關機,android關機卸載驅動
網址分享:http://weahome.cn/article/dsohpee.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部