-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
app優(yōu)化(自動app優(yōu)化)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于app優(yōu)化的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、Android 性能優(yōu)化 05---App啟動優(yōu)化
其實啟動框架就是一個任務調度系統(tǒng),是手淘啟動的“大管家”。
管家要做的事情就是把它們的關系梳理得明明白白,有條不紊,合理安排位置、調度時間,同時提升硬件資源的利用率。
總結下來無非就是兩點:
有向無環(huán)圖[拓撲排序]
可用方案
APT,字節(jié)碼插樁,利用ContentProvider
面試題LeakCanary 為什么不需要在Application中手動初始化?
①點擊桌面App圖標,Launcher進程采用Binder IPC向system_server進程發(fā)起 startActivity請求;
②system_server進程接收到請求后,向zygote進程發(fā)送創(chuàng)建進程的請求;
③Zygote進程fork出新的子進程,即App進程;
④App進程,通過Binder IPC向sytem_server進程發(fā)起attachApplication請求;
⑤system_server進程在收到請求后,進行一系列準備工作后,再通過binder IPC 向App進程發(fā)送scheduleLaunchActivity請求;
⑥App進程的binder線程(ApplicationThread)在收到請求后,通過handler向主 線程發(fā)送LAUNCH_ACTIVITY消息;
⑦主線程在收到Message后,通過反射機制創(chuàng)建目標Activity,并回調 Activity.onCreate()等方法。
⑧到此,App便正式啟動,開始進入Activity生命周期,執(zhí)行完 onCreate/onStart/onResume方法,UI渲染結束后便可以看到App的主界面。
應用有三種啟動狀態(tài),每種狀態(tài)都會影響應用向用戶顯示所需的時間:冷啟動、溫啟動與熱啟動。
adb命令啟動應用,一般會輸入三個值:ThisTime、TotalTime與WaitTime。
1.WaitTime:包括前一個應用Activitypause的時間和新應用啟動的時間;
2.ThisTime:表示一連串啟動Activity的最后一個Activity的啟動耗時;
3.TotalTime:表示新應用啟動的耗時,包括新進程的啟動和Activity的啟動,但不包括前一個應用Activitypause
的耗時。
StrictMode是一個開發(fā)人員工具,它可以檢測出我們可能無意中做的事情,并將它們提請我們注意,以便我 們能夠修復它們。 StrictMode最常用于捕獲應用程序主線程上的意外磁盤或網絡訪問。幫助我們讓磁盤和網絡操作遠離主線程, 可以使應用程序更加平滑、響應更快
當系統(tǒng)加載并啟動 App 時,需要耗費相應的時間,這樣會造成用戶會感覺到當點擊 App 圖標時會有 “延遲” 現象,
為了解決這一問題,Google 的做法是在 App 創(chuàng)建的過程中,先展示一個空白頁面,讓用戶體會到點擊圖標之后立
馬就有響應。
如果你的application或activity啟動的過程太慢,導致系統(tǒng)的BackgroundWindow沒有及時被替換,就會出現啟動
時白屏或黑屏的情況(取決于Theme主題是Dark還是Light)。
消除啟動時的黑/白屏問題,大部分App都采用自己在Theme中設置背景圖的方式來解決。
然后在Activity的onCreate方法,把Activity設置回原來的主題。
這么做,只是提高啟動的用戶體驗。并不能做到真正的加快啟動速度。
二、viewerapp如何優(yōu)化德普優(yōu)化
深度ASO數據分析之道
德普優(yōu)化聯合廣州卓動游戲,AdSeeData,姑婆那些事兒,APP頂尖推廣,運營大叔等于7月7日周四晚上舉辦主題為“基于數據的運營推廣之道”的分享會圓滿落幕。
「姑婆那些事兒」的老萬分享了他的運營推廣之道--“APP運營工作的模塊化處理”;
「廣州卓動游戲」的Eddy分享了他的海外FB廣告投放之道--“Facebook廣告投放心得與技巧”;
「德普優(yōu)化」的Harvey分享了他的深度ASO數據分析之道--“深度ASO數據分析及海外ASO優(yōu)化”。
分享會內容豐富,大家熱情高漲,紛紛對大咖們提出了自己的問題,得到了大咖們的講解,滿載而歸。
現在德普船長就來總結一下我們德普家長Harvey的分享內容吧!
Harvey:德普優(yōu)化(deepaso.com)、微拓ASO(vtool.cc)創(chuàng)始人,資深搜索引擎研發(fā)工程師,歷經百度NLP、微博、同步推等搜索產品。
深度ASO數據分析及海外ASO優(yōu)化
首先,Harvey大致講述了ASO的基本概念--提升移動app在應用商店中的曝光的過程,包含搜索排名優(yōu)化和榜單優(yōu)化。講述了ASO大致的兩種方法:Keyword Optimization(包含:選詞、詞排名、轉化率)和Asset Optimization即app其它屬性的優(yōu)化(圖標、截圖、描述等,通過a/b測試)。
接著,Harvey基于一些統(tǒng)計數據規(guī)律,講解ASO優(yōu)化的數據。
統(tǒng)計數據分析
Appstore分發(fā)量分布:搜索、榜單、推薦位、外部導量。65%以上來源于搜索(蘋果官方數據),剩下的分發(fā)量中至少一半來源于榜單,未上榜且無外部導流的app,搜索是前期唯一的曝光入口。
搜索中的流量細分:
1.精準品牌詞分發(fā)量占比70-80%(如:微信、QQ、淘寶等),非指向性特征詞(泛需求詞)占比20-30%(如:音樂、游戲、漫畫、瀏覽器、視頻等)
2.二八定律起主導作用而非長尾效應
a.需求日益集中在少量app上面,80%以上的僵尸應用
b.各個app是一座信息的孤島,對外所展現的只是一個app的名字,不利于信息的傳播和搜索
影響搜索關鍵詞的轉化率因素:
關鍵詞與app的相關性、icon圖標、截圖、描述等等。其中關鍵詞方面,轉化率:精準品牌詞 > 特征詞 > 相關熱門其它品牌詞 > 不相關詞。
搜索排序
三、Android性能優(yōu)化第(八)篇---App啟動速度優(yōu)化之耗時檢測處理
應用的啟動速度緩慢這是很多開發(fā)者都遇到的一個問題,比如啟動緩慢導致的黑屏,白屏問題,大部分的答案都是做一個透明的主題,或者是做一個Splash界面,但是這并沒有從根本上解決這個問題。那么如何從根本上解決這個問題或者做到一定程度的緩解?
1、冷啟動:當啟動應用時,后臺沒有該應用的進程,這時系統(tǒng)會首先會創(chuàng)建一個新的進程分配給該應用,這種啟動方式就是冷啟動。
2、熱啟動:當啟動應用時,后臺已有該應用的進程,比如按下home鍵,這種在已有進程的情況下,這種啟動會從已有的進程中來啟動應用,這種啟動方式叫熱啟動。
3、溫啟動 :當啟動應用時,后臺已有該應用的進程,但是啟動的入口Activity被干掉了,比如按了back鍵,應用雖然退出了,但是該應用的進程是依然會保留在后臺,這種啟動方式叫溫啟動。
adb shell am start -W [PackageName]/[PackageName.MainActivity]
執(zhí)行成功后將返回三個測量到的時間:
這里面涉及到三個時間,ThisTime、TotalTime 和 WaitTime。WaitTime 是 startActivityAndWait 這個方法的調用耗時,ThisTime 是指調用過程中最后一個 Activity 啟動時間到這個 Activity 的 startActivityAndWait 調用結束。TotalTime 是指調用過程中第一個 Activity 的啟動時間到最后一個 Activity 的 startActivityAndWait 結束。如果過程中只有一個 Activity ,則 TotalTime 等于 ThisTime。
總結:如果只關心某個應用自身啟動耗時,參考TotalTime;如果關心系統(tǒng)啟動應用耗時,參考WaitTime;如果關心應用有界面Activity啟動耗時,參考ThisTime。
從我們Application開始到首頁顯示出來,這個過程,我們應該注意一些什么,將這個過程細分一下,會有下面的時間點需要注意。
Application的構造器方法——>attachBaseContext()——>onCreate()——>Activity的構造方法——>onCreate()——>配置主題中背景等屬性——>onStart()——>onResume()——>測量、布局、繪制顯示在界面上。
因為上面這些階段全部都是在主線程中執(zhí)行的,任何不經意的操作都可能拖慢應用的啟動速度。所以我們不應在Application以及Activity的生命周期回調中做任何費時操作,具體指標大概是你在onCreate,onResume,onStart等回調中所花費的總時間最好不要超過400ms,否則用戶在桌面點擊你的應用圖標后,將感覺到明顯的卡頓。但是有些 不得以的任務 又必須在UI顯示之前執(zhí)行。所以我們要將 任務 劃分優(yōu)先級。
對于首頁渲染完成后,開始加載,或者延遲加載,延遲加載的目的就是界面先顯示出來,然后加載,但是你覺得要延遲多久呢?在 Android 的高端機型上,應用的啟動是非??斓?, 這時候只需要 Delay 很短的時間就可以了, 但是在低端機型上,應用的啟動就沒有那么快了,而且現在應用為了兼容舊的機型,往往需要 Delay 較長的時間,這樣帶來體驗上的差異是很明顯的。延遲加載有一種方式。
極力推薦用第二種,在窗口完成以后進行加載,這里面的run方法是在onResume之后運行的。關于這種懶加載機制,參考 Android應用啟動優(yōu)化:一種DelayLoad的實現和原理(上篇) ,給出了詳細的解釋。
通過上面我們知道一種懶加載機制,所以我們可以將Application中和首頁的onCreate中的有些耗時任務,放到首頁渲染完畢后加載。如何找出這些耗時任務,TraceView就派上用場了,TraceView的用法,移步我的前面的博客 Android性能優(yōu)化第(六)篇---TraceView 分析圖怎么看?
比如在首頁的onCreate中我們進行了用戶啟動上報,這個進行懶加載是不是分分鐘減少139毫秒呢?
在比如在Application里面用到了GSON,將String轉化成json,我將這個移動到懶加載里面,是不是又減少了100毫秒呢?
在比如,有些Application中做了支付SDK的初始化,用戶又不會一打開App就要支付,放在Application中加載干嘛?
此處我們這里舉得例子是優(yōu)化了139毫秒和100毫秒的,其實真正耗時的任務有的有1秒多,都被我優(yōu)化完了,所以trace圖中看不到了,就舉個了這兩個例子,還有SharedPreferences也是耗時大戶,經過檢測保存一個boolean變量耗時120+毫秒以上。
利用TraceView可以清楚我們每一個方法的耗時時間,極大的幫助了我們做優(yōu)化工作。
五、優(yōu)化思路總結
1、UI渲染優(yōu)化,去除重復繪制,減少UI重復繪制時間,打開設置中的GPU過度繪制開關,各界面過度繪制不應超過2.5x;也就是打開此調試開關后,界面整體呈現淺色,特別復雜的界面,紅色區(qū)域也不應該超過全屏幕的四分之一;
2、根據優(yōu)先級的劃分,KoMobileApplication的一些初始化工作能否將任務優(yōu)先級劃分成3,在首頁渲染完成后進行加載,比如:PaySDKManager。
3、主線程中的所有SharedPreference能否在非UI線程中進行,SharedPreferences的apply函數需要注意,因為Commit函數會阻塞IO,這個函數雖然執(zhí)行很快,但是系統(tǒng)會有另外一個線程來負責寫操作,當apply頻率高的時候,該線程就會比較占用CPU資源。類似的還有統(tǒng)計埋點等,在主線程埋點但異步線程提交,頻率高的情況也會出現這樣的問題。
4、檢查BaseActivity,不恰當的操作會影響所有子Activity的啟動。
5、對于首次啟動的黑屏問題,對于“黑屏”是否可以設計一個.9圖片替換掉,間接減少用戶等待時間。
6、對于網絡錯誤界面,友好提示界面,使用ViewStub的方式,減少UI一次性繪制的壓力。
7、任務優(yōu)先級為2,3的,通過下面這種方式進行懶加載的方式
8、Multidex的使用,也是拖慢啟動速度的元兇,必須要做優(yōu)化。后面有空專門寫一篇Multidex。
相關鏈接:
Android應用啟動優(yōu)化:一種DelayLoad的實現和原理(上篇)http://androidperformance.com/2015/11/18/Android-app-lunch-optimize-delay-load.html
Android性能優(yōu)化之加快應用啟動速度http://www.open-open.com/lib/view/open1452821612355.html
手機淘寶性能優(yōu)化全記錄http://www.open-open.com/lib/view/open1452488209370.html
Android客戶端性能優(yōu)化(魅族資深工程師毫無保留奉獻)http://blog.tingyun.com/web/article/detail/155#rd
Please accept mybest wishes for your happiness and success !
四、在app store 上怎么做app優(yōu)化排名
方法/步驟
知己:分析要優(yōu)化的app的數據,給自己一個定位
重點關注幾個數據:
1)app新增、留存、日活、用戶評論評星
2)當前版本關鍵詞覆蓋、及搜索排名情況
3)當前流量來源,是否有一些外部渠道可用,量有多少
從這些數據上大致可以判斷出一款app當前所處的階段,從而制定不同的關鍵詞優(yōu)化策略。
冷門app:日新增500以內,基本上還算比較冷門的應用,這個時候,一般進不了分類榜前200名,幾乎沒有知名度,原因可能是多方面的:產品體驗待優(yōu)化、關鍵詞設置不合理、不符合用戶需求、產品太小眾、沒有推廣渠道、留存低、市面上類似產品太多等等。這個階段的關鍵詞策略大致是:主要覆蓋精準的關鍵詞,盡量多做一些比較長尾或搜索結果數少的相關關鍵詞,副標題可以先不加。
一般app:日新增在1000到1萬左右,這個時候產品已經得到小范圍用戶的認可了,產品體驗還行,已經進入分類榜前200名,找到某些用戶痛點,好一些的app日活可能已經到10萬級別了。這個階段的關鍵詞優(yōu)化策略大致是:可以考慮添加副標題并在副標題里面加上一些相關關鍵詞來提升權重,去掉搜索排名靠后的不相關或者太冷門的關鍵詞,適當加入一些競品品牌詞。
熱門app:日新增1萬-5萬之間,這個時候產品在國內基本上已經有一定的知名度了,用戶會直接搜索app名字來下載,排名在分類榜的前20名,有一個團隊在運營和開發(fā)這個app。這個階段關鍵詞的優(yōu)化策略是:主要做熱門的領域相關詞,去掉一些冷門的關鍵詞(權重在4650以下的),適當加入一些競品品牌詞,同時考慮放一些熱門、搜索結果數少的不相關詞。(因為產品已經有一定的知名度,通過熱門的詞來提升曝光,利用品牌效應吸引用戶)
超級app:已經非常牛了,可以關注一下關鍵詞的覆蓋數據,如果比較少的話,建議還是參考上面說的一些方法做一些關鍵詞,對流量提升還是有幫助的。
知彼:找市面上的競品
了解市面上的類似產品,主要收集這些產品覆蓋的關鍵詞;同時可以分析這些產品的特點,ASO策略。比如:有一個app叫“游戲多”,它的策略是用同一個模板做很多游戲攻略類的app發(fā)布,覆蓋不同的關鍵詞,然后特定時候往“游戲多”這個app上面導量;倒數日這款app,開發(fā)商名下有十幾個小app,之間相互推廣等等。
找詞:盡可能多地找出相關詞
幾種方法:
1)收集競品app覆蓋的關鍵詞
2)使用ASO工具提供的app關鍵詞擴展、相關關鍵詞擴展、每日關鍵詞查詢這三個工具
3)查看關鍵詞分類榜和使用高價值關鍵詞查詢獲取一些最近熱門但結果數少的關鍵詞
通過這幾種方法,只要多花些時間,就不難找到與app相關的大量關鍵詞了
選詞:挑選最合適的關鍵詞
兩個大原則:
1)一個關鍵詞能帶來的流量與詞熱度、轉化率成正比,與排名成反比
因此挑選熱門的、轉化率高的、搜索結果少的詞優(yōu)化效果最優(yōu)。
2)標題搜索權重>100字關鍵詞搜索權重
當app有一定量的情況下,適當放一些熱門詞在副標題里,可以提升相關關鍵詞排名。
幾個因子說明:
詞熱度即關鍵詞的權重,一般分布在4605和10800之間,越大越熱門
轉化率即(下載/曝光)*100%,即用戶搜索某個詞后對某個結果第一眼看過去決定要不要下載的概率,主要因素有app與當前詞的相關性、當前詞與icon和截圖的相關性、描述相關性等等。這里只討論關鍵詞部分,在挑選詞的時候,按詞類型優(yōu)先級大致是:自身品牌詞及其變形>領域相關詞>競品詞>不相關詞。比如:對愛奇藝來說,愛奇藝、iqiyi是品牌詞;視頻、電影、電視劇是領域相關詞;樂視、優(yōu)酷是競品詞;新聞是不太相關詞。
排名即應用在某個關鍵詞下面的搜索排序位置,排名越靠后,流量越小,且衰減速度很快,有些精準的關鍵詞,排名在10名開外基本就不會帶來流量了,“游戲、電影、小說”這種泛相關詞衰減慢一些,因為用戶搜索這些詞的目的不明確,瀏覽性質比較強,傾向于多比較幾個app再決定要不要下載。
越熱門的詞通常競爭也越激烈,搜索結果數很多,冷門的app通常搶不到好位置,所以冷門的app前期主要靠長尾詞、搜索結果數少的詞來帶量。ASO工具官網提供了高價值關鍵詞查詢工具,專門用來發(fā)現最新出現的優(yōu)質熱詞。
組合:去重保留盡可能多的關鍵詞
經過以上4步后,基本上你已經形成這樣一個列表,<詞、熱度、詞類型、搜索結果數>,這個時候你要做的是把這些詞組合起來,放入標題、100個字的關鍵詞中,盡可能覆蓋多的關鍵詞。這里主要需要研究蘋果的搜索切詞策略,按切詞策略切分這些關鍵詞,然后去重組合成最終結果。這里要注意的是一些切開的詞會在多個關鍵詞里面出現,這種明顯的特征詞一般是領域相關的優(yōu)質詞,建議長期保留,因為可以帶來不同的關鍵詞組合。
注意:一個漢字和一個英文字母都是占用一個字,逗號也占用一個字
經過以上步驟,最終生成一份標題和關鍵詞,在提交app的時候填入即可。
通常來說一個app需要幾輪的優(yōu)化才能達到比較好的效果,在迭代優(yōu)化的時候,去掉上一輪排名靠后的比較不相關的詞,同時結合上述步驟挑選優(yōu)質詞放入。
以上就是關于app優(yōu)化相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
華為手機如何自定義app圖標(手機桌面圖標怎么改成自己喜歡的圖案)
snapchat密碼怎么設置(snapchat密碼怎么設置不了卡?。?/a>