原创 Android-註解處理器-手寫Butterknife
大家可能都用過Butterknife,今天就從0到1寫一個Butterknife,首先通過反射的方式實現,接着再改爲註解處理器實現,通過這個例子進而掌握註解處理器的使用。完整代碼參考:AnnotationProcessor 其中也會涉及一些
原创 Android-註解處理器
大家可能都用過Butterknife,今天就從0到1寫一個Butterknife,首先通過反射的方式實現,接着再改爲註解處理器實現,通過這個例子進而掌握註解處理器的使用。完整代碼參考:AnnotationProcessor 其中也會涉及一些
原创 NDK學習筆記 目錄
整理了一份NDK學習筆記,分享給需要的朋友: https://github.com/jdqm/ndk 目錄 一、CMake入門基礎 1.1 創建NDK項目 1.2 CMake編譯基礎語法 二、Java與JNI交互 2.1 在J
原创 JVM(4)-Java內存模型與線程 1. 8個原子操作 3.原子性,可見性和有序性 4. 線程的實現 5.Java線程的實現 6.Java線程調度 7.線程的狀態轉換
線程對變量的修改都是在工作內存中進行的,那工作內存與主存之間的交互是如何進行的? 1. 8個原子操作 lock(鎖定): 作用於主內存變量,它把一個變量標識爲一條線程獨佔的狀態; unlock(解鎖):作用於主內存變量,它把一個被線程獨
原创 JVM(2)-垃圾收集器與內存分配策略 一、垃圾收集器 二、內存分配策略
一、垃圾收集器 1.如何確定對象已死 1.1.引用計數法-Reference Counting 給對象添加一個引用計數器,當有新的地方引用它時,引用計數器加1,當引用失效時,計數器減1,任意時刻計數器爲0的對象就是不可能被再使用了。這種方
原创 Android單元測試只看這一篇就夠了 一、單元測試的目的以及測試內容 二、單元測試的分類 三、JUnit 註解 四.本地測試 五、儀器化測試 六、常用單元測試開源庫 七、實踐經驗 八、其他
本文由 玉剛說寫作平臺 提供寫作贊助,版權歸 玉剛說 微信公衆號所有 原作者:Jdqm 版權聲明:未經 玉剛說 許可,不得以任何形式轉載 單元測試是應用程序測試策略中的基本測試,通過對代碼進行單元測試,可以輕鬆地驗證單個單元的邏輯是否正
原创 JVM(3)-類加載機制 1. 類加載的七個階段 2. 類加載器
1. 類加載的七個階段 1.1加載 通過一個類的全限定名來獲取定義此類的二進制字節流; 將這個字節流所代表的靜態存儲結構轉化爲方法區的運行時數據結構; 在內存中生成一個代表這個類的java.lang.Class對象,作爲方法區這個類的各
原创 JVM(1)-運行時數據區 I.運行時五大數據區 II.對象的創建(HotSpot) IV.對象的訪問
一直沒有系統的學習JVM相關的知識,之前偶爾查看某些章節,比如類的加載過程、GC策略、內存模型等,趁這段時間全面系統學習一番,記錄下關鍵的知識點方便後面翻閱。 I.運行時五大數據區 方法區(Method Area) 虛擬機棧(Java
原创 Google Play In-app Billing API version is less than 3
有一段時間沒寫文章了,今天分享一個最近遇到的坑。先說結論,賬號問題,不是代碼問題。 最近在做海外版App的時候有個需求是接入Google支付,接入支付SDK後,“有些手機”當嘗試通過SDK連接到Google Play中的支付服務時,即以下代
原创 JVM(5)-線程安全與鎖優化 1.線程安全 2.Java語言中的線程安全 3.線程安全的實現方法 4.鎖優化
1.線程安全 如果一個對象能安全地被多個線程同時使用,那麼它就是線程安全的。 當多個線程訪問同一個對象時,如果不需要考慮這些線程在運行時環境下的調度和交替執行,也不需要進行額外的同步,或者在調用方進行任何其他的協調操作,調用這個對象
原创 Gradle(1)- Groovy基礎 一.開發環境準備 二. 開發實戰 10. 文件IO 11. 解析XML 12.其他
Gradle是目前Android主流的構建工具,不管你是通過命令行還是通過Android Studio來build,最終都是通過Gradle來實現的,所以學習Gradle非常重要。 Groovy最終被編譯成class字節碼文件運行在jvm
原创 Android的線程與線程池知識
I. 線程 線程在Android系統中扮演者一個很重要的角色,從用途上來說,可以分爲主線程和子線程,主線程一般用來處理界面與用戶的交互,而子線程則往往用來執行一些耗時操作,例如I/O操作和網絡訪問,在Android3.0之後網絡訪
原创 《Android開發藝術探索》筆記(2)Android消息機制
消息機制主要包含三個元素:Handler、MessageQueue、Looper 工作原理 Hander被創建後,通過Handler的post方法將一個Runable投遞到Handler內部的Looper中去處理,或者通過Ha
原创 《Android開發藝術探索》筆記(1)
一、Activity的生命週期 1、正常的生命週期 onCreate(): 表示Activity正在被創建,是生命週期中的第一個方法,可以在這個方法中做一些初始化工作,如調用setContentView()去加載佈局資源,初
原创 線性表的基本操作,包括:創建、插入、刪除、查找等基本操作
標籤: 數據結構 線性表是數據結構中最直觀、最簡單的一類抽象數據類型,本次需要使用順序表來實現線性表,並編寫相應的測試程序對你所創建的順序表及單鏈表進行測試,以下給出測試樣例: 輸入數據格式: 第一行只有一個整型數N(0<