隨筆一記

  轉眼就到了19年的五一了,一件好事是今年五一放四天假,但是不好的事即將發生,我有可能被索菱踢出公司圈了,不知是喜或是憂,因爲我也算見證了索菱繁華和衰落,曾記得17年我來到這裏的時候公司大量招人,項目也是陸陸續續不斷,有出貨有未出貨的,但是無論怎樣我們都是保持着一顆積極努力的心態在做,然而時過境遷,現在卻是衰敗的如此之快,有行業的不景氣,但是跟公司的決策也有莫大的關係,如今公司因資金緊張,大量變向裁員,導致公司是實存名亡,嗚呼哀哉!

    事既已定,誠然就是爲自己謀後路了,對於我們這種做了幾年的程序猿來說就是記錄下最近這份工作所的內容了:

1:iPod播放器的開發與實現:車機端實現iPod的播放控制,信息列表的展示

2:SystemUI的定製:針對Android原生4.4和7.1兩版本的SystemUI對狀態欄和下拉通知欄,導航欄的定製,以及fsml版本的裁剪

3:Launcher的定製:針對Android4.4原生的Launcher2對WorkSpace和AllApp進行定製和修改

4:framework修改:服務的裁剪,壁紙,輸入法,狀態欄導航欄高度,狀態欄導航欄位置(左右),語言

5:科大,同行者語音語義定製和邏輯功能修改

另外記錄下app性能優化的步驟和framework關於Activity的啓動流程:

app性能優化:

1)啓動優化:熱啓動和冷啓動,針對冷啓動需要優化在Application中onCreate()方法(特別是第三方sdk)和Activity的渲染不要進行耗時操作,如果存在需要放在子線程中處理

2)響應優化:Android每隔16ms發出一個vsync的信號進行重繪,如果此時上次的繪製還沒有完成的話,這次的繪製會被拋棄,導致卡頓出現:(1)佈局過於複雜 (2)UI線程運算複雜(3)頻繁的GC(內存抖動:短時間內大量的對象創建又被銷燬;瞬間產生大量對象)

3)內存優化:

(1)內存泄露:bitmap未recycle,靜態實例長期佔用Activity的引用,數據庫,網絡流未關閉,廣播未unregister,集合未清理等

(2)內存溢出:超出Android給程序分配的內存,例如分配long類型數據給int類型,另外就是內存泄露嚴重導致

4)電池優化:

(1)優化網路請求:減少網路請求次數,使用GZIP壓縮,減小圖片大小,使用緩存機制

(2)不使用時候關閉GPS定位

Activity的啓動流程如下:

Launcher點擊圖標,調用startActivitysafely(),然後調用startActivityForResult()然後再去調用Instrumentation.execStartActivity(),然後調用ActivityManagerService.checkStartActivtyResult()然後去調用Application.scheduleLaunchActivty(),在該方法中創建了一個ActivityClientRecord對象通過handler發送,然後通過LoaderApk.handleLauncherActivity來啓動Activity進行生命週期的調用。

生命誠可貴,生活價更高,讓我們一起努力吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章