原创 java不同線程中的try...catch

有些人爲了圖方便,直接在代碼引用的最外層放上一個try catch,以爲可以捕獲一切異常,降低崩潰率。 事實上,如果try的是新開啓的一個線程,那麼這個線程裏面出現的異常是catch不到。也就是說在A線程中new B線程,B線程中出現的c

原创 性能優化專題十--高效java編碼

一、對常量使用靜態 final 下面是位於類頂部的聲明: static int intVal = 42; static String strVal = "Hello, world!"; 編譯器會生成一個名爲 <

原创 性能優化專題九--應用包體縮減實戰

首先推薦兩個性能優化的最佳指南一個是官方指南--性能--縮減應用體量,另外一個是Android studio的官方指南--配置編譯版本--壓縮您的應用。涵蓋了壓縮應用體積的所有方面, 官網:https://developer.androi

原创 性能優化專題八--webp圖片壓縮實戰

webp壓縮圖片 webp與哈夫曼編碼區別: webp編碼對於哈夫曼壓縮性能更優異,哈夫曼與webp本質上都是從編碼來解決圖像壓縮,哈夫曼是對rgb的元數據進行變頻壓縮,webp編碼是通過預測技術對圖片壓縮 預測技術(VP8編碼 H264

原创 性能優化專題七--Apk加固之Dex文件的加密與解密

1、我們一般的apk是這樣的,直接打開apk是可以看到裏面的源碼的,如下圖所示 這樣對大家來說就不安全,我們所要做的就是把我們的apk中的dex文件加密,讓別人就算拿到我們的apk裏面啥也看不到。如下圖所示,點擊加密之後的apk,裏面啥

原创 性能優化專題六--進程保活十種方式

LMK(Low Memory Killer) 進程被殺死無非就是由於系統內存過低,並且進程的優先級比較低,所以纔會被系統kill掉,想要進程保活必須提高進程的優先級。 爲什麼引入LMK? 進程的啓動分冷啓動和熱啓動,當用戶退出某一個進程的

原创 性能優化專題五--Proguard混淆簡單使用、以及混淆後的映射

Proguard是一個代碼優化和混淆工具。能夠提供對Java類文件的壓縮、優化、混淆,和預校驗。壓縮的步驟是檢測並移除未使用的類、字段、方法和屬性。優化的步驟是分析和優化方法的字節碼。混淆的步驟是使用短的毫無意義的名稱重命名剩餘的類、字段

原创 性能優化專題五--加密算法

SHA1算法: import org.apache.commons.codec.digest.Sha2Crypt; import org.junit.Test; public class SHA { @Test pub

原创 性能優化專題三--內存優化(圖片三級緩存)

/** * 管理內存中的圖片 */ public class ImageCache { private static ImageCache instance; private Context context;

原创 性能優化專題四--內存優化(長圖加載)

public class BigView extends View implements GestureDetector.OnGestureListener, View.OnTouchListener { private Re

原创 性能優化專題二--內存優化(虛引用和弱引用的區別、枚舉優化、對象池)

問題一:虛引用和弱引用的區別 虛引用:該對象在回收前和回收後都無法通過虛引用獲取到這個,在該對象被回收掉時會將對象部分信息存儲到虛引用回收隊列中,僅僅是拿到一個對象被回收掉的通知; 弱引用:在該對象被回收前可以通過弱引用獲取到該對象,回

原创 性能優化專題一--啓動優化(黑白屏、traceView耗時函數定位)

App啓動流程 1、系統啓動簡易流程 開機–>[引導程序BootLoader->負責拉起操作系統]–>linux,init.rc–>init進程pid=1–>zygote[孵化器,創建虛擬機JVM]–>啓動進程間通訊的工具SystemSe

原创 自定義LayoutManager--實現流式佈局

整體效果,使用RecyclerView,通過自定義的LayoutManager實現了一個流式佈局,在上滑到底部和下滑到頂部時無法滑動,並且每行子item可以測量當寬度不夠時自動折行顯示的效果,完整項目:https://github.com

原创 Android自定義view--仿寫抖音主界面

看下項目整體實現效果,上下翻頁時完成視頻切換: 視頻的切換這裏我們使用RecyclerView進行實現,核心是需要自定義LayoutManager;視頻播放我們使用VideoView控件。 在MyLayoutManager加載成功後,我

原创 手寫RecyclerView--實現item回收池、支持千萬級item

完成的自定義RecyclerView整體效果如下:可以支持item的滑動,慣性滑動,以及緩衝池添加回收item的功能,項目完整地址:https://github.com/buder-cp/CustomView/tree/master/bu