原创 Android Task Flag

回退棧(Back Stack):每個Task都存在一個BackStack,而系統中可以存在多個Task,但是每次只有一個Task獲得前臺焦點,一般而言,系統允許用戶在多個Task中切換,而被至於後臺的Task中的Activity,將被置

原创 JVM中的指令

字節碼 助記符 指令 0x00 nop 什麼都不做。 0x01 aconst_null 將 null 推送至棧頂。 0x02 iconst_m1 將 int 型-1 推送至棧頂。 0x0

原创 每天學一點java字節碼

java 字節碼 類方法的方法參數從0開始,而實例方法的第0個參數是this指針。 For class methods (i.e. static methods) the method parameters start from ze

原创 android contacts data

content provider Demo是給的一個聯繫人的栗子:點擊打開鏈接 part1 contacts:  A CursorLoader runs its query on a thread that's separate from

原创 java初始化類

初始化(Initialization)對於類或接口來說,就是執行它的初始化方法(§2.9)。在發 生下列行爲時,類或接口將會被初始化: 在執行下列需要引用類或接口的Java虛擬機指令時:new,getstatic,putstatic 或

原创 打開或者創建數據庫的操作應該放在哪裏?

打開strictMode後, db = new AliUserDBHelper(context).getReadableDatabase(); 這一行報錯,大概就說StrictModeReadViolation 然後看到網上有人說這個讀

原创 Android WebView 的內存泄露問題

最近有滾回去搞安卓了,其它的問題還好,內存泄露簡直搞死我了。。。 login泄露,註冊泄露,webview泄露,尼瑪用mat查出來的suspect都是bitmap,可我的佈局壓根都沒有自己寫bitmap,唯一用到圖片的就是控件背景圖

原创 JVM規範研讀-1

看了很多java源碼,現在也開始看一些jvm的東西,字節碼之類的,於是乾脆直接看JVM規範了。 從JVM的指令開始: 1 基本數據類型:char,byte,short,int,boolean,float,double,long,r

原创 JVM規範研讀-3 Class文件格式

每個 Class文件都是由 8字節爲單位的字節流組成,所有的 16位、32位和 64位長度的數據將被構造成 2個、4個和 8個 8字節單位來表示。多字節數據項總是按照 Big-Endian1的順序進行存儲。在Java

原创 android webview的緩存機制

在運行安卓程序時,報錯DatabaseObjectNotClosedException 運行是/data/data/package/databases/webview.db沒關掉db 大概是跟webview的緩存有關?cache還是coo

原创 android優化---java優化

static class Foo {     int mSplat; } Foo[] mArray = ... public void zero() {     int sum = 0;     for (int i = 0; i <

原创 JVM指令2

0x59  dup複製棧頂數值並將複製值壓入棧頂。 0x5a  dup_x1複製棧頂數值並將兩個複製值壓入棧頂。 0x5b  dup_x2複製棧頂數值並將三個(或兩個)複製值壓入棧頂。 0x5c  dup2複製棧頂一個(long或 do

原创 JVM規範研讀-2

接着上一篇點擊打開鏈接 4 JVM虛擬機編譯 指令的格式: <index> <opcode> [<operand1> [<operand2>...]] [<comment>]   <index>是 code[]

原创 Bitmap的cache處理,包括memory cache和disk cache

翻譯至點擊打開鏈接 安卓的控件經常會顯示很多圖片,如list view or view pager: recycling the child views as they move off-screen. 垃圾回收會釋放加載的bitma

原创 android TextView實現html的超鏈接

textView.setText(Html.fromHtml("歡迎大家來到本站網址如下http://magiclen.org/") textView.setMovementMethod(LinkMovementMethod.getI