當前位置:首頁 » 安卓系統 » 安卓手機android怎麼關機

安卓手機android怎麼關機

發布時間: 2022-10-11 00:12:51

安卓手機怎麼設置自動關機

如果您使用的是華為手機,以華為Mate 40手機為例:
1、進入設置 > 輔助功能 > 定時開關機 ,開啟定時開關機開關。
2、設置開機時間、關機時間及重復周期。系統將在設定的時間自動關機或開機。
若要取消定時開關機功能,請關閉定時開關機開關。

❷ 安卓手機如何強制關機

vivo手機沒有強制關機的功能,如需強制重啟手機,可按以下方法進行操作~
①長按頂部圓鍵10秒以上強制重啟手機(NEX 3/NEX 3S適用);
②2017年9月後上市的機型(X20及之後的機型),以及未來將上市的新機型:同時按住「電源鍵」+「音量減鍵」10秒以上;
③2017年9月以前上市的機型(X20之前的機型):長按「電源鍵」12秒以上。

❸ 安卓手機如何強制關機並重啟

智能手機如同電腦一樣,內置系統和各類軟體,系統運行時,難免會因為軟體自身兼容性等因素出現死機的現象,這時手機無法操作,按電源鍵也沒有反應,我們可以嘗試「強制重啟」手機恢復使用。vivo手機因機型不同,強制重啟的操作方式各不相同,具體操作方式可對照下方機型了解。


強制重啟方式一:長按【電源鍵】12秒以上
適用機型:Y35、Y51、X5Pro、X6、X6Plus、Y31、X6S、X6SPlus、XPlay5、V3Max、V3、V3M、X7、X7Plus、Y55、X9、Y66、Y67、Xplay6、X9Plus、Y53、X9s、X9s Plus,及Funtouch OS 3.2以下的其他機型。



❹ android 關機重啟流程

https://developer.android.com/intl/zh-CN/reference/android/os/PowerManager.html

在PowerManager的API文檔中,給出了一個關機/重啟介面:
public void reboot (String reason)
對於這個介面的描述很簡單,就是幾句話。
介面的作用就是重啟設備,而且,就算重啟成功了也沒有返回值。
需要包含REBOOT許可權,也就是android.permission.REBOOT
唯一參數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

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

重啟的實現在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函數,參數就是傳遞下來的reason,稍後分析。如果不是重啟,即mReboot=false,那就是需要關機了,在shutdown函數中就能夠知道。

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

frameworks/base/services/jni/com_android_server_PowerManagerService.cpp

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

system/core/libcutils/android_reboot.c

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

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

接下來才是對參數的解析處理:

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

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

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

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

最後會對reason進行一個檢測,那麼通過上邊的分析,其實只有帶參數的特殊重啟才會為-1,而不等於-1的情況中有普通重啟和關機,而關機已經自行解決了……所以,不等於-1的情況到了這里也只有普通重啟了。最終這里就是區分普通重啟與特殊重啟的地方了。這里再插入一個問題,其他的幾個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,相關信息完全一致。

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

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

include/linux/syscalls.h

與__reboot的調用參數一致。

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

同樣在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上已經不是這函數,自己查找
arm_pm_restart = msm_pm_restart;

下面是qcom 實現,每個平台不同

可以在跟蹤這個流程的過程中會發現,確實是有存在關機的相關介面的。那麼關機該怎麼用呢?
frameworks/base/services/java/com/android/serverBatteryService.java

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

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

Ref: https://blog.csdn.net/leerobin83/article/details/7162751

上面主要講到流程,在實際開發中, 主動調用系統開機關機如何做
(Ref: https://blog.csdn.net/luzhenrong45/article/details/42092007 )
一. 發送系統廣播方式
二. 通過init.rc啟動系統服務來運行sh文件
三. Runtime調用Linux-shell
四 . PowerManager reboot以及反射調用PowerManagerService shutdown
五.使用ShutdownThread (嘗試不成功,但想法覺得可行)

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

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

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

❺ 安卓手機不能關機怎麼處理

vivo手機無法關機,可嘗試將手機強制重啟。
1、長按頂部圓鍵10秒以上強制重啟手機(NEX 3/NEX 3S適用);
2、2017年9月後上市的機型(X20及之後的機型),以及未來將上市的新機型:同時按住「電源鍵」+「音量減鍵」10秒以上;
3、2017年9月以前上市的機型(X20之前的機型):長按「電源鍵」12秒以上;
若以上方法未能解決您的問題,可攜帶手機和購機憑證前往vivo客戶服務中心檢測,關注微信公眾號「vivo」或者「vivo客戶服務」進行查詢服務中心地址電話,建議去之前電話聯系,確保有工作人員接待再過去,避免耽誤寶貴時間白跑一趟。

❻ 安卓手機怎麼關機重啟

一般都是長按手機電源鍵3-5秒左右就會彈出一個界面,可以選擇關機,重啟,然後你點一下重啟就好了

❼ 安卓手機不能關機怎麼處理

1、長按手機電源鍵8至10秒重啟機器,若是內置電池,同時按住電源鍵和下音量鍵7秒以上重啟設備,然後再次點擊電源鍵 後點擊關機;1.長按頂部圓鍵10秒以上強制重啟手機(NEX 3/NEX 3S適用);
2.2017年9月後上市的機型(X20及之後的機型),以及未來將上市的新機型:同時按住「電源鍵」+「音量減鍵」10秒以上;
3.2017年9月以前上市的機型(X20之前的機型):長按「電源鍵」12秒以上;

❽ 安卓手機怎樣強制關機

vivo手機沒有強制關機的功能,如需強制重啟手機,可按以下方法進行操作~
①長按頂部圓鍵10秒以上強制重啟手機(NEX 3/NEX 3S適用);
②2017年9月後上市的機型(X20及之後的機型),以及未來將上市的新機型:同時按住「電源鍵」+「音量減鍵」10秒以上;
③2017年9月以前上市的機型(X20之前的機型):長按「電源鍵」12秒以上。

❾ 安卓手機死機了怎麼強制關機

  • 1.安卓手機卡死死機後我們可以先長按住關機鍵別鬆手,按鍵大概15-30秒會強制關機。接下來還是按住開關機鍵啟動。大概5-10秒就可以啟動。

熱點內容
360瀏覽器腳本 發布:2025-01-23 13:54:42 瀏覽:565
合拍率演算法 發布:2025-01-23 13:50:59 瀏覽:257
access資料庫期末考試 發布:2025-01-23 13:50:23 瀏覽:120
androiddialog背景 發布:2025-01-23 13:47:44 瀏覽:209
存儲報表能開發嗎 發布:2025-01-23 13:42:02 瀏覽:704
騰訊地圖ftp 發布:2025-01-23 13:38:43 瀏覽:17
linuxif判斷文件存在 發布:2025-01-23 13:35:24 瀏覽:997
java一個位元組 發布:2025-01-23 13:33:57 瀏覽:485
c程序編譯過程 發布:2025-01-23 13:33:54 瀏覽:415
微信公眾平台php 發布:2025-01-23 13:31:45 瀏覽:658