當前位置:首頁 » 安卓系統 » android啟動模式設置

android啟動模式設置

發布時間: 2022-10-04 14:13:08

⑴ Android系統的幾種啟動模式

1.一般啟動模式(normal mode) 進入方法:按電源鍵啟動 描述:這是正常啟動手機的方法 2.安全模式(safe mode) 進入方法:按住menu鍵,按電源鍵啟動手機,直至手機啟動完成松開menu鍵 描述:和正常啟動一樣,但沒有登記Google,所以不能訪問Market或使用你的Google賬號 3.引導模式(bootloader mode) 進入方法:按住照相鍵,按電源鍵啟動手機 描述:可以從SD卡上安裝新的系統映像(DREAIMG.NBH),只需再按一次電源鍵。為獲取root許可權,對手機進行降級,就是使用這個模式。 4.恢復模式(recovery mode) 進入方法:按住HOME鍵,按電源鍵啟動手機 描述:可以打開命令解釋程序(shell),刷新映像文件(flash image),執行備份等。當然這一切取決於你手機上的recovery image版本。 5.診斷模式(diagnostic mode) 進入方法:按住軌跡球,按電源鍵啟動手機 描述:用於測試(按音量鍵選擇項目) 6.fastboot模式 進入方法:按住返回鍵,按電源鍵啟動手機,直至屏幕出現FASTBOOT字樣後松開返回鍵

⑵ Android開發,activity的默認啟動模式為標准啟動模式,什麼時候會用到其他的啟動模式

啟動模式簡單地說就是Activity啟動時的策略,在AndroidManifest.xml中的標簽的android:launchMode屬性設置;
啟動模式有4種,分別為standard、singleTop、singleTask、singleInstance;
講解啟動模式之前,有必要先了解一下「任務棧」的概念;
一 :
standard 模式:這個就沒有什麼好說的了,Android默認Activity啟動的模式 就是 standard,如果有3個 Activity,Act1,Act2,Act3, 如果從Act1 啟動到Act2 ,在啟動到Act3,那麼Android 的任務棧(task stack)分別為 Act1、Act2、Act3,Act3 在棧頂,如果此時按手機返回鍵,則需要返回3次才能返回到桌面(假設是從桌面啟動的demo),任務棧分銷毀掉 Act3,Act2,最後Act1 。
二 :singleTop模式:
實驗效果:
singleTop模式:該啟動模式和standard模式相差不多,任務棧分配也很相似,如:現有 act1,act 2,在act2 清單文件中配置 android:launchMode="singleTop" ,其他都是默認standard 模式, 若從桌面啟動該實驗demo,從act 1,到act2 ,那麼任務棧則分配為,act1,act2,此時該任務棧和 standard 模式任務棧分配則完全相同,接下來則說明不同的地方,如果在act2 界面中 啟動 到act1, 此時的 任務棧 情況則為 act1,act2,act1,在由act1 啟動到act2,在啟動到act2,進行多次啟動,(在act2界面)任務棧的情況則為,act1,act2,act1,act2,棧頂的act2 則不會重新創建,則會復用act2 該 Activit, 依次類推。
理論知識:
singleTop,如果任務棧的棧頂元素是要被激活的組件,不會創建新的Activity放在任務棧,而是會復用棧頂的Activity。 如果發現棧頂的元素不是要激活的Activity,就會創建新的Activity 放置到任務棧裡面
singleTop模式應用場景 :
App程序中(或瀏覽器中)保存的書簽,假如用戶看到一個界面保存自己喜歡的標簽,假如要保存10個,這個時候用戶在返回鍵的時候,則會返回10次才能返回到App應用中, Android下singleTop 則解決該問題。
三singleTask 模式 :
實驗效果 相差不大,實驗內容就不多說了,自己可以寫個小demo,兩個Activity,每個Activiy 有兩個button,可以相互啟動 打日誌去動手查看,會理解更加深刻,可以參照著 SingleTop模式去實驗,以下只是講解下 和SingleTop的區別:
區別如下:(理論知識)
SingleTask 操作模式,一般和singleTop操作模式類似,如果他發現任務棧裡面已經有了要啟動的這個Activity,他會清空這個Activity所在的任務棧上面的所有Activiy,然後直接復用這個已經存在的Activity 。
應用場景:
如果一個App中,有一個功能需要載入網頁內容 ,打開一個 browserActiviy現在網頁內容,則內存開銷非常大,首先要初始化webkit /c++ 嵌入式瀏覽器內核broweractivity 配置了singleTask,空間換時間,使用該模式可以節省內存開銷。
四 :singleinstance 模式 :
直接理論知識吧」:
singleInstance操作模式會新開啟一個任務棧,跟其他普通Activity不是 同一個任務棧,比較牛,他的模式流程是 首先要新開啟一個新的任務棧把要激活的Activity放置到新的 任務棧里,這個任務棧裡面只有且 只有一個實例,也比較極端吧。說比較極端也跟他的應用場景有關系。
應用場景 :
App各種詞典,向有道詞典,什麼金山詞典,說極端是因為不想被放置到同一個任務棧裡面,它是全局的系統程序應用,達到節省內存的使用目的。

⑶ Android安卓系統手機幾種運行模式解析

Android系統中具備6個模式,分別為一般啟動模式(normal mode)、安全模式(safe mode)、恢復模式(recovery mode)、引導模式(bootloader mode)、fastboot模式和診斷模式(diagnostic mode)。 一般啟動模式(normal mode)的功能是正常啟動手機,方法為關機狀態下按電源鍵啟動。 安全模式(safe mode)。此模式和正常啟動一樣,但沒有登記Google,所以不能訪問Market或使用你的Google賬號。操作方法為按住「menu」鍵,按電源鍵啟動手機,直至手機啟動完成松開「menu」鍵。 恢復模式(recovery mode)可打開命令解釋程序(shell),刷新映像文件(flash image),執行備份等。當然這一切取決於你手機上的recovery image版本。使用方法很簡單,就是home鍵和電源鍵一起按。 引導模式(bootloader mode)的功能是從SD卡上安裝新的系統映像(DREAIMG.NBH),只需再按一次電源鍵。值得一提的事為Android手機獲取root許可權,就是使用這個模式。操作方法為照相鍵和電源鍵一起按。 fastboot模式主要是在電腦上使用fastboot命令來刷新映像文件。使用方法為按住返回鍵,按電源鍵啟動手機,直至屏幕出現FASTBOOT字樣後松開返回鍵。

⑷ 安卓採用什麼方式來管理activity的實例

Android採用任務線(Task)的方式來管理Activity的實例。


在開發Android應用時,經常會涉及一些消耗大量系統內存的情況,例如視頻播放、大量圖片或者程序中開啟多個Activity沒有及時關閉等,會導致程序出現錯誤。為了避免這種問題,Google提供了一套完整的機制讓開發人員控制 Android中的任務線。

Android系統中的任務線,類似於一個容器,用於管理所有的Activity實例。在存放Activity時,滿足「先進後出 (First-In/Last-Out )"的原則。

但是使用任務線有以下缺點:

每開啟一次頁面都會在任務棧中添加一個Activity,而只有任務棧中的Activity全部清除出線時,任務線被銷毀,程序才會退出。這樣就造成了用戶體驗差, 需要點擊多次返回才可以把程序退出。

每開啟一次頁面都會在任務棧中添加一個Activity還會造成數據冗餘, 重復數據太多, 會導致內存溢出的問題(OOM)。為了解決任務棧產生的問題,Android為Activity設計了啟動模式。

在實際開發中,應根據特定的需求為每個Activity指定恰當的啟動模式。Activity的啟動模式有4種,分別是standard、singleTop、singleTask和singlelnstance。在AndroidManifest.xml中,通過<activity>標簽的android:launchMode屬性可以設置啟動模式。

⑸ android 怎麼設置activity的啟動模式

在Android中每個界面都是一個Activity,切換界面操作其實是多個不同Activity之間的實例化操作。在Android中Activity的啟動模式決定了Activity的啟動運行方式。
Android總Activity的啟動模式分為四種:

Activity啟動模式設置:

<activity android:name=".MainActivity" android:launchMode="standard" />

Activity的四種啟動模式:

1. standard

模式啟動模式,每次激活Activity時都會創建Activity,並放入任務棧中。

2. singleTop

如果在任務的棧頂正好存在該Activity的實例, 就重用該實例,否者就會創建新的實例並放入棧頂(即使棧中已經存在該Activity實例,只要不在棧頂,都會創建實例)。

3. singleTask

如果在棧中已經有該Activity的實例,就重用該實例(會調用實例的onNewIntent())。重用時,會讓該實例回到棧頂,因此在它上面的實例將會被移除棧。如果棧中不存在該實例,將會創建新的實例放入棧中。

4. singleInstance

在一個新棧中創建該Activity實例,並讓多個應用共享改棧中的該Activity實例。一旦改模式的Activity的實例存在於某個棧中,任何應用再激活改Activity時都會重用該棧中的實例,其效果相當於多個應用程序共享一個應用,不管誰激活該Activity都會進入同一個應用中。

其中standard是系統默認的啟動模式。

下面通過實例來演示standard的運行機制:

1 private TextView text_show;
2 private Button btn_mode;
3
4 @Override
5 public void onCreate(Bundle savedInstanceState) {
6 super.onCreate(savedInstanceState);
7 setContentView(R.layout.activity_main);
8
9 text_show = (TextView) this.findViewById(R.id.text_show);
10
11 text_show.setText(this.toString());
12
13 btn_mode = (Button) this.findViewById(R.id.btn_mode);
14
15 }
16
//按鈕單擊事件
17 public void LaunchStandard(View v){
18 startActivity(new Intent(this,MainActivity.class));
19
20 text_show.setText(this.toString());
21 }

⑹ Android N「直接啟動」是什麼神奇的功能

從 Android N 開始,在首次開機時,在用戶尚未來得及解鎖設備之前,設備可直接啟動到一種名為 Direct Boot(直接啟動)的新模式中。在此模式下,操作系統可以全功能運行,但不允許訪問私有應用數據,只能運行經過更新、可支持直接啟動功能的應用。

直接啟動適合我的應用嗎?並非所有應用都應運行在直接啟動模式下,因此,在開始編碼之前,請務必先檢查您的應用是否符合以下常見的用例:
安排鬧鈴的應用,如鬧鍾。

提供重要且及時的通知的應用,如簡訊應用。

為其他應用或系統提供服務的應用,例如輔助工具服務。

請注意,以上並非詳盡的用例列表,我們期待看到還有哪些類型的應用能夠從直接啟動模式獲益。

讓您的應用支持直接啟動
為了讓您的應用能夠在用戶解鎖設備之前運行,您必須在清單文件中將組件顯式標記為支持直接啟動:

<activity|provider|receiver|service ...

android:directBootAware=」true」>

您可以選擇您的應用中需要支持直接啟動的組件子集,但如果您使用的是自定義 Application 類,則假定應用內部標記為支持直接啟動的任何組件均支持直接啟動。對於需要在直接啟動模式下在系統啟動之後盡快運行的應用,現在提供一種新的 Intent.ACTION_LOCKED_BOOT_COMPLETED 廣播。在用戶解鎖該設備之後,所有應用仍將收到 Intent.ACTION_BOOT_COMPLETED 廣播。

使用設備保護存儲區為了支持應用在用戶提供解鎖私有應用數據所需的憑據之前的正常運行,所有 Android N 設備現在均提供兩個數據存儲位置:
憑據保護存儲區,這是所有應用的默認存儲位置,僅在用戶解鎖設備後可用。

設備保護存儲區,這是一個新的存儲位置,當設備啟動後(包括直接啟動期間)隨時都可訪問該位置。

應用中被標記為支持直接啟動的組件必須使用設備保護存儲區來存儲直接啟動模式期間應用操作所需的任何數據。在用戶解鎖設備後,用戶仍可訪問憑據保護存儲區。

要訪問設備保護存儲區,您需要為所有文件相關的 API 另外創建並使用一個 Context 對象:

Context deviceProtectedContext = context.();

deviceProtectedContext.openFileInput( ... )

當您的應用更新到支持直接啟動的版本之後,您之前保存的共享首選項
資料庫可能需要遷移到設備保護存儲區。在訪問該存儲區之前,即使數據已從舊版本或其他設備中備份並恢復,您仍應使
用 Context.moveSharedPreferencesFrom() 和
Context.moveDatabaseFrom(),以確保應用能夠繼續正常運行。

注意事項

應審慎考慮要在設備保護存儲區中存儲哪些數據。應盡量減少在設備保護存儲區中存儲的數據,以確保您的應用在直接啟動期間正常運行為限。例如,在簡訊應用
中,您可以存儲一個訪問令牌,其作用域僅限於能夠訪問伺服器上的新消息數量。所有敏感的私人信息(例如完整的簡訊歷史記錄和讀/寫訪問令牌)仍應保存在憑
據保護存儲區中。

另外需要提醒的一點是:在直接啟動期間,應用只能訪問其他支持直接
啟動的應用和組件。如果您的應用依賴外部服務和 Activity,請確保妥善處理外部服務和 Activity
不可用的情形。默認情況下,Intent 過濾器僅匹配當前用戶狀態(已鎖定/已解鎖)下可用的組件。現在有兩個新的標志,可用於向 Package
Manager
顯式聲明需要枚舉哪些組
件:PackageManager.MATCH_DIRECT_BOOT_AWARE 和 PackageManager.MATCH_DIRECT_BOOT_UNAWARE。

未來計劃

原生支持直接啟動的 Android N 設備發布之前,您可以使用 Android N 開發者預覽版測試您的應用。在 Nexus 5X 和
Nexus 6P 上,您可以通過使用 Settings > Developer options > Convert to file
encryption 來擦除所有用戶數據並啟用完整的直接啟動模式。或者,您也可以重新啟動到引導裝載程序並發出相應的快速啟動命令:

$ adb reboot-bootloader

$ fastboot --wipe-and-use-fbe

警告:這兩種方法都將執行恢復出廠設置並刪除設備中的所有用戶數據。

或者,您也可以使用模擬的直接啟動模式。若要啟用模擬直接啟動模式,請在設備上設置鎖定模式,如果在設置鎖定模式時系統提示安全啟動屏幕,則選擇「No thanks」,然後使用以下 adb shell 命令啟用和禁用模擬:

$ adb shell sm set-emulate-fbe true

$ adb shell sm set-emulate-fbe false

請注意,使用這些命令會導致設備重啟。您只應在測試設備上使用模擬直接啟動模式,因為該模式可能導致數據丟失。

熱點內容
華山演算法 發布:2025-01-21 08:44:48 瀏覽:366
如何在微信上再設置一個密碼 發布:2025-01-21 08:44:39 瀏覽:731
浙江伺服器搭建雲主機 發布:2025-01-21 08:41:38 瀏覽:452
光遇和王者榮耀哪個需要的配置高 發布:2025-01-21 08:40:28 瀏覽:13
如何取消安卓微信表情 發布:2025-01-21 08:08:39 瀏覽:556
python判斷是否為字母 發布:2025-01-21 08:07:55 瀏覽:609
安卓手機如何注銷吃雞賬號並把錢拿回來 發布:2025-01-21 07:56:14 瀏覽:887
電信的密碼是什麼意思 發布:2025-01-21 07:30:36 瀏覽:717
在自己電腦搭建伺服器 發布:2025-01-21 07:27:13 瀏覽:654
怎麼配置釘釘代理網路 發布:2025-01-21 07:17:16 瀏覽:711