分享優(yōu)化uniapp安卓端從點(diǎn)擊app圖標(biāo)到顯示啟動(dòng)頁需要1-2秒延遲挪挤、卡頓的問題

本人原創(chuàng)鏈接:https://ask.dcloud.net.cn/article/39413

這幾天開始接觸uniapp開發(fā),發(fā)現(xiàn)官方demo安卓端點(diǎn)擊app圖標(biāo)到顯示啟動(dòng)頁(Hbuildx圖標(biāo)頁)會(huì)卡個(gè)1-2秒

明顯比原生app體驗(yàn)差很多关翎,作為一個(gè)強(qiáng)迫癥扛门,這點(diǎn)當(dāng)然是不能忍的。具體問題詳情查看以下鏈接:

https://ask.dcloud.net.cn/question/133649?notification_id-987295rf-falseitem_id-177937#!answer_177937

先說下大概為什么卡頓的原因纵寝,我也不太明白论寨,我猜是因?yàn)閱?dòng)安卓app時(shí)需要啟動(dòng)webview或者weex等底層引擎導(dǎo)致的卡頓。(這個(gè)問題望官方的人可以解答一下,我看了PandoraEntry的源碼也沒有找到答案

下面說一下優(yōu)化原理葬凳,就是用原生安卓代碼先啟動(dòng)一個(gè)頁面贞铣,然后在該頁面中再啟動(dòng)uni的主activity(PandoraEntry)

這樣,點(diǎn)擊app圖標(biāo)后沮明,就跟原生一樣會(huì)立馬顯示我們?cè)_發(fā)的第一個(gè)頁面(而不會(huì)卡個(gè)1辕坝、2秒才顯示界面,讓人感覺以為自己沒點(diǎn)擊圖標(biāo)成功)

下面說下流程

一荐健、在AS中新建一個(gè)empty activity:菜單file->new->activity->empty activity酱畅。

界面xml代碼:

```

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"?

? ? xmlns:app="http://schemas.android.com/apk/res-auto"?

? ? xmlns:tools="http://schemas.android.com/tools"?

? ? android:layout_width="match_parent"?

? ? android:layout_height="match_parent"?

? ? tools:context="com.xiefeng.MainActivity">?

</androidx.constraintlayout.widget.ConstraintLayout>

```

沒什么東西,就是一個(gè)空白頁面

java代碼如下:

package com.xiefeng;

import androidx.appcompat.app.AppCompatActivity;?

import android.content.Intent;?

import android.os.Bundle;?

import com.android.simple.R;?

import io.dcloud.PandoraEntry;?

public class MainActivity extends AppCompatActivity {?

? ? @Override?

? ? protected void onCreate(Bundle savedInstanceState) {?

? ? ? ? super.onCreate(savedInstanceState);?

? ? ? ? setContentView(R.layout.activity_main);?

? ? ? ? Thread myThread=new Thread(){//創(chuàng)建子線程江场,啟動(dòng)uni的主activity?

? ? ? ? ? ? @Override?

? ? ? ? ? ? public void run() {?

? ? ? ? ? ? ? ? try{?

? ? ? ? ? ? ? ? ? ? sleep(1000);//使程序休眠五秒?

? ? ? ? ? ? ? ? ? ? Intent it=new Intent(MainActivity.this, PandoraEntry.class);//啟動(dòng)MainActivity?

? ? ? ? ? ? ? ? ? ? startActivity(it);?

? ? ? ? ? ? ? ? ? ? finish();//關(guān)閉當(dāng)前活動(dòng)?

? ? ? ? ? ? ? ? }catch (Exception e){?

? ? ? ? ? ? ? ? ? ? e.printStackTrace();?

? ? ? ? ? ? ? ? }?

? ? ? ? ? ? }?

? ? ? ? };?

? ? ? ? myThread.start();//啟動(dòng)線程?

? ? }?

}

二纺酸、AndroidManifest.xml修改:

1、在android節(jié)點(diǎn)加上主題android:theme="@style/AppTheme2"

2址否、新增我們自定義的activity并設(shè)為main

3餐蔬、將uni的主activity的main注釋掉

完整代碼如下:

??? ? ? ? ? ? ? ? ? ? <?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"?

? ? package="com.android.simple">?

? ? <application?

? ? ? ? android:allowBackup="true"?

? ? ? ? android:allowClearUserData="true"?

? ? ? ? android:icon="@drawable/icon"?

? ? ? ? android:label="@string/app_name"?

? ? ? ? android:largeHeap="true"?

? ? ? ? android:supportsRtl="true"?

? ? ? ? android:theme="@style/AppTheme2">?

? ? ? ? <activity android:name="com.xiefeng.MainActivity">?

? ? ? ? ? ? <intent-filter>?

? ? ? ? ? ? ? ? <action android:name="android.intent.action.MAIN" />?

? ? ? ? ? ? ? ? <category android:name="android.intent.category.LAUNCHER" />?

? ? ? ? ? ? </intent-filter>?

? ? ? ? </activity>?

? ? ? ? <activity?

? ? ? ? ? ? android:name="io.dcloud.PandoraEntry"?

? ? ? ? ? ? android:configChanges="orientation|keyboardHidden|keyboard|navigation"?

? ? ? ? ? ? android:hardwareAccelerated="true"?

? ? ? ? ? ? android:label="@string/app_name"?

? ? ? ? ? ? android:launchMode="singleTask"?

? ? ? ? ? ? android:screenOrientation="user"?

? ? ? ? ? ? android:theme="@style/TranslucentTheme"?

? ? ? ? ? ? android:windowSoftInputMode="adjustResize">?

? ? ? ? ? ? <!--<intent-filter>?

? ? ? ? ? ? ? ? <action android:name="android.intent.action.MAIN" />?

? ? ? ? ? ? ? ? <category android:name="android.intent.category.LAUNCHER" />?

? ? ? ? ? ? </intent-filter>?

? ? ? ? ? ? -->?

? ? ? ? </activity>?

? ? ? ? <activity?

? ? ? ? ? ? android:name="io.dcloud.PandoraEntryActivity"?

? ? ? ? ? ? android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize"?

? ? ? ? ? ? android:hardwareAccelerated="true"?

? ? ? ? ? ? android:launchMode="singleTask"?

? ? ? ? ? ? android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"?

? ? ? ? ? ? android:screenOrientation="user"?

? ? ? ? ? ? android:theme="@style/DCloudTheme"?

? ? ? ? ? ? android:windowSoftInputMode="adjustResize">?

? ? ? ? ? ? <intent-filter>?

? ? ? ? ? ? ? ? <category android:name="android.intent.category.DEFAULT" />?

? ? ? ? ? ? ? ? <category android:name="android.intent.category.BROWSABLE" />?

? ? ? ? ? ? ? ? <action android:name="android.intent.action.VIEW" />?

? ? ? ? ? ? ? ? <data android:scheme="h56131bcf" />?

? ? ? ? ? ? </intent-filter>?

? ? ? ? </activity>?

? ? ? ? <provider?

? ? ? ? ? ? android:name="io.dcloud.common.util.DCloud_FileProvider"?

? ? ? ? ? ? android:authorities="com.android.simple.dc.fileprovider"?

? ? ? ? ? ? android:exported="false"?

? ? ? ? ? ? android:grantUriPermissions="true">?

? ? ? ? ? ? <meta-data?

? ? ? ? ? ? ? ? android:name="android.support.FILE_PROVIDER_PATHS"?

? ? ? ? ? ? ? ? android:resource="@xml/dcloud_file_provider" />?

? ? ? ? </provider>?

? ? ? ? <meta-data?

? ? ? ? ? ? android:name="dcloud_appkey"?

? ? ? ? ? ? android:value="69ae588821d34380d31b94dd33dc0689" />?

? ? </application>?

</manifest>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -->? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

三、最后在values/styles.xml加上主題:

<style name="AppTheme2" parent="Theme.AppCompat.Light.NoActionBar">

? ? ? ? <item name="android:windowFullscreen">true</item>?

? ? ? ? <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>?

? ? ? ? <item name="android:windowDrawsSystemBarBackgrounds">false</item>?

? ? ? ? <item name="colorPrimary">#6200EE</item>?

? ? ? ? <item name="colorPrimaryDark">#6200EE</item>?

? ? ? ? <item name="colorAccent">#6200EE</item>?

? ? </style>

如果要加上自己的啟動(dòng)圖片佑附,可以加上節(jié)點(diǎn):<item name="android:windowBackground">@drawable/splash</item>樊诺,并把圖片放到drawable文件夾下。

建議原生啟動(dòng)圖和Hbuildx設(shè)置的啟動(dòng)圖為同一張音同,這樣兩張啟動(dòng)圖無縫對(duì)接词爬,體驗(yàn)比較好。

(注:加上啟動(dòng)圖后啟動(dòng)會(huì)更慢個(gè)0.1秒不知道為什么权均,希望大神們解答一下)

完畢顿膨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市叽赊,隨后出現(xiàn)的幾起案子恋沃,更是在濱河造成了極大的恐慌,老刑警劉巖必指,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囊咏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡取劫,警方通過查閱死者的電腦和手機(jī)匆笤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谱邪,“玉大人炮捧,你說我怎么就攤上這事〉胍” “怎么了咆课?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵末誓,是天一觀的道長。 經(jīng)常有香客問我书蚪,道長喇澡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任殊校,我火速辦了婚禮绳姨,結(jié)果婚禮上臀防,老公的妹妹穿的比我還像新娘洼哎。我一直安慰自己磺陡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布敬察。 她就那樣靜靜地躺著秀睛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪莲祸。 梳的紋絲不亂的頭發(fā)上蹂安,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音锐帜,去河邊找鬼田盈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抹估,可吹牛的內(nèi)容都是我干的缠黍。 我是一名探鬼主播弄兜,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼药蜻,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了替饿?” 一聲冷哼從身側(cè)響起语泽,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎视卢,沒想到半個(gè)月后踱卵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡据过,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年惋砂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绳锅。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡西饵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鳞芙,到底是詐尸還是另有隱情眷柔,我是刑警寧澤期虾,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站驯嘱,受9級(jí)特大地震影響镶苞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鞠评,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一茂蚓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剃幌,春花似錦煌贴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至敬鬓,卻和暖如春淹朋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钉答。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國打工础芍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人数尿。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓仑性,卻偏偏與公主長得像,于是被迫代替她去往敵國和親右蹦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诊杆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容