您好,登錄后才能下訂單哦!
這篇文章主要介紹android中App啟動如何優化,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
做Android開發,一定寫給過啟動頁,在這里做一些初始化的操作,還有就是顯示推廣信息。
很普通的一個頁面,以前測試也給我提出過bug,應用在啟動的時候,有時候有白屏/黑屏。當時能做的就是盡量較少耗時操作,上面醫生的文章里也有提到,但是通過主題的方式優化這個問題之前還真是不知道的。
下面主要總結一下通過主題的方式優化啟動頁(醫生還提到了在子線程初始化和使用IntentService初始化,都是屬于異步初始化,還有延遲初始化,就不說了)
通過修改主題優化啟動時白屏/黑屏
原理請移步到醫生的文章,我就不復述了,之所以會看到白屏或者黑屏,是和我們的主題有關系的,因為系統默認使用的主題,背景色就是白色/黑色。那么我們自定義一個主題,讓默認的樣式就是我們想要的,就優化了白屏/黑屏的問題。
首先,我們自定義一個主題,設置一個我們想要的背景
<!-- 啟動頁主題 --> <style name="SplashTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"> <item name="android:windowBackground">@drawable/start_window</item> </style>
自定義背景start_window.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque"> <!-- The background color, preferably the same as your normal theme --> <item android:drawable="@android:color/holo_blue_dark" /> <!-- Your product logo - 144dp color version of your app icon --> <item> <bitmap android:gravity="center" android:src="@mipmap/ic_launcher" /> </item> </layer-list>
***,在清單文件設置啟動頁使用我們自定義的主題
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bitmain.launchtimedemo"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <!-- 啟動頁 --> <activity android:name=".SplashActivity" android:theme="@style/SplashTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 主頁 --> <activity android:name=".MainActivity" /> </application> </manifest>
到此大功告成,為了體現出效果,在啟動頁加載之前,我們模擬一個白屏/黑屏的延時操作
public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 模擬系統初始化 白屏、黑屏 SystemClock.sleep(1000); setContentView(R.layout.activity_splash); // 啟動后 停留2秒進入到主頁面 new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(SplashActivity.this, MainActivity.class); startActivity(intent); finish(); } }, 2000); } }
以上是“android中App啟動如何優化”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。