<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      安卓筆記俠

      專注安卓開發

      導航

      Android性能優化之App應用啟動分析與優化

      前言:

           昨晚新版本終于發布了,但是還是記得有測試反饋app啟動好長時間也沒進入app主頁,所以今天準備加個班總結一下App啟動那些事!

      app的啟動方式:

       1.)冷啟動

           當啟動應用時,后臺沒有該應用的進程,這時系統會重新創建一個新的進程分配給該應用,這個啟動方式就是冷啟動。冷啟動因為系統會重新創建一個新的進程分配給它,所以會先創建和初始化Application類,再創建和初始化MainActivity類(包括一系列的測量、布局、繪制),最后顯示在界面上。

       2.)熱啟動

           當啟動應用時,后臺已有該應用的進程(例:按back鍵、home鍵,應用雖然會退出,但是該應用的進程是依然會保留在后臺,可進入任務列表查看),所以在已有進程的情況下,這種啟動會從已有的進程中來啟動應用,這個方式叫熱啟動。熱啟動因為會從已有的進程中來啟動,所以熱啟動就不會走Application這步了,而是直接走MainActivity(包括一系列的測量、布局、繪制),所以熱啟動的過程只需要創建和初始化一個MainActivity就行了,而不必創建和初始化Application,因為一個應用從新進程的創建到進程的銷毀,Application只會初始化一次。

      app的啟動流程:

         通過上面的兩種啟動方式可以看出app啟動流程為:

          Application的構造器方法——>attachBaseContext()——>onCreate()——>Activity的構造方法——>onCreate()——>配置主題中背景等屬性——>onStart()——>onResume()——>測量布局繪制顯示在界面上

      app的啟動優化:

          基于上面的啟動流程我們盡量做到如下幾點

      1. Application的創建過程中盡量少的進行耗時操作

      2. 如果用到SharePreference,盡量在異步線程中操作

      3. 減少布局的層次,并且生命周期回調的方法中盡量減少耗時的操作

      app啟動遇見黑屏或者白屏問題

        1.)產生原因

           其實顯示黑屏或者白屏實屬正常,這是因為還沒加載到布局文件,就已經顯示了window窗口背景,黑屏白屏就是window窗口背景。

          示例:

        

       2.)解決辦法

           通過設置設置Style

      (1)設置背景圖Theme

          通過設置一張背景圖。 當程序啟動時,首先顯示這張背景圖,避免出現黑屏

      <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
              <item name="android:screenOrientation">portrait</item>
              <item name="android:windowBackground">>@mipmap/splash</item>
              <item name="android:windowIsTranslucent">true</item>
              <item name="android:windowNoTitle">true</item>
      </style>

      (2)設置透明Theme

         通過把樣式設置為透明,程序啟動后不會黑屏而是整個透明了,等到界面初始化完才一次性顯示出來

       <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
              <item name="android:windowNoTitle">true</item>
              <item name="android:windowBackground">@android:color/transparent</item>
              <item name="android:windowIsTranslucent">true</item>
              <item name="android:screenOrientation">portrait</item>
      </style>

      兩者對比:

      • Theme1 程序啟動快,界面先顯示背景圖,然后再刷新其他界面控件。給人刷新不同步感覺。

      • Theme2 給人程序啟動慢感覺,界面一次性刷出來,刷新同步。

      (3)修改AndroidManifest.xml

       1 <application
       2         android:name=".App"
       3         android:allowBackup="true"
       4         android:icon="@mipmap/ic_launcher"
       5         android:label="@string/app_name"
       6         android:supportsRtl="true">
       7         <activity android:name=".MainActivity"
       8          android:theme="@style/AppTheme">
       9             <intent-filter>
      10                 <action android:name="android.intent.action.MAIN" />
      11 
      12                 <category android:name="android.intent.category.LAUNCHER" />
      13             </intent-filter>
      14         </activity>
      15 
      16     //......
      17 
      18 </application>

      解決后示例:

      3.)常見的Theme主題
       1 android:theme="@android:style/Theme.Dialog" //Activity顯示為對話框模式
       2 
       3 android:theme="@android:style/Theme.NoTitleBar" //不顯示應用程序標題欄
       4 
       5 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" //不顯示應用程序標題欄,并全屏
       6 
       7 android:theme="Theme.Light " //背景為白色
       8 
       9 android:theme="Theme.Light.NoTitleBar" //白色背景并無標題欄
      10 
      11 android:theme="Theme.Light.NoTitleBar.Fullscreen" //白色背景,無標題欄,全屏
      12 
      13 android:theme="Theme.Black" //背景黑色
      14 
      15 android:theme="Theme.Black.NoTitleBar" //黑色背景并無標題欄
      16 
      17 android:theme="Theme.Black.NoTitleBar.Fullscreen" //黑色背景,無標題欄,全屏
      18 
      19 android:theme="Theme.Wallpaper" //用系統桌面為應用程序背景
      20 
      21 android:theme="Theme.Wallpaper.NoTitleBar" //用系統桌面為應用程序背景,且無標題欄
      22 
      23 android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" //用系統桌面為應用程序背景,無標題欄,全屏
      24 
      25 android:theme="Theme.Translucent" //透明背景
      26 
      27 android:theme="Theme.Translucent.NoTitleBar" //透明背景并無標題
      28 
      29 android:theme="Theme.Translucent.NoTitleBar.Fullscreen" //透明背景并無標題,全屏
      30 
      31 android:theme="Theme.Panel " //面板風格顯示
      32 
      33 android:theme="Theme.Light.Panel" //平板風格顯示

       

      posted on 2018-05-03 14:49  安卓筆記俠  閱讀(529)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 狠狠综合久久综合88亚洲| 中文字幕日韩精品人妻| 国产av综合一区二区三区| 一区二区三区四区自拍偷拍| 狠狠噜天天噜日日噜视频麻豆 | 马龙县| 精品熟女少妇av免费久久| 国产亚洲一级特黄大片在线| 亚洲国产精品一区二区视频| 亚洲精品麻豆一二三区| 亚洲国产精品成人av网| 久久久久人妻一区精品| 亚洲AV国产福利精品在现观看| 上司的丰满人妻中文字幕| 亚洲国产一区二区精品专| 日本一区二区不卡精品| 台湾省| 一区二区三区放荡人妻| 国产精品色一区二区三区| 中文字幕乱妇无码AV在线| 国产69成人精品视频免费| 成人一区二区人妻不卡视频| 全球成人中文在线| 一区二区丝袜美腿视频| 国产三级黄色片在线观看| 亚洲AV无码成人网站久久精品| 国产成人亚洲无码淙合青草| 国产免费午夜福利在线观看| 实拍女处破www免费看| 麻豆一区二区中文字幕| 国产成人精品午夜在线观看| 欧美成人精品高清在线播放| 免费久久人人爽人人爽AV| 成人免费av色资源日日| 农村老熟妇乱子伦视频| 99国精品午夜福利视频不卡99| 精品国产伦理国产无遮挡| 亚洲精品国偷拍自产在线观看蜜臀| 免费看欧美全黄成人片| 久久亚洲日本激情战少妇| 不卡国产一区二区三区|