原创 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