原创 文本編輯工具 vim

它是linux中必不可少的一個工具。沒有它很多工作都無法完成。早期的Unix都是使用的vi作爲系統默認的編輯器的。你也許會有疑問,vi與vim有什麼區別?可以這樣簡單理解,vim是vi的升級版。很多linux系統管理員都習慣用vi,那是因

原创 Android 內存優化 (防Memory Leak)

Android Memory Leak 和 OOM爲什麼會發生。這次主要說說編碼層面,如何來預防Memory Leak的發生。 對象都是有生命週期的,對象的生命週期有的是進程級別的,有的是Activity所在的生命週期,隨Activity

原创 JNI/NDK開發指南(八)---JNI調用性能測試及優化

在前面幾章我們學習到了,在Java中聲明一個native方法,然後生成本地接口的函數原型聲明,再用C/C++實現這些函數,並生成對應平臺的動態共享庫放到Java程序的類路徑下,最後在Java程序中調用聲明的native方法就間接的調用到了

原创 android中常用的技巧

這裏收集了大家常用的一些Android代碼,持續更新中,內容來自自己的平時積累和網絡上看到的文章,部分原文地址在最下方。如有錯誤歡迎指正,如有侵權,請聯繫我刪除。裏面可能會有重複內容,請忽略或者提醒我刪除。 setBackground

原创 JNI/NDK開發指南(四)--訪問數組(基本類型數組與對象數)

JNI中的數組分爲基本類型數組和對象數組,它們的處理方式是不一樣的,基本類型數組中的所有元素都是JNI的基本數據類型,可以直接訪問。而對象數組中的所有元素是一個類的實例或其它數組的引用,和字符串操作一樣,不能直接訪問Java傳遞給JNI層

原创 JNI/NDK開發指南(九)---JNI異常處理

異常簡介 異常,顯而意見就是程序在運行期間沒有按照正常的程序邏輯執行,在執行過程當中出現了某種錯誤,導致程序崩潰。在Java中異常分爲運行時異常(RuntimeException)和編譯時異常,在程序中有可能運行期間發生異常的邏輯我們會用

原创 Android 性能優化之使用線程池處理異步任務

說到線程,我想大家都不陌生,因爲在開發時候或多或少都會用到線程,而通常創建線程有兩種方式: 1、繼承Thread類 2、實現Runnable接口 雖說這兩種方式都可以創建出一個線程,不過它們之間還是有一點區別的,主要區別在於在多

原创 Fresco 與 Picasso 、Glide 的比較

比較Picasso、Glide 和 Fresco 三種圖片加載庫 比較 Picasso 與 Glide 總體來說二者極爲相似,有着近乎相同的 API 的使用風格,但 Glide 在緩存策略和加載 gif 方面略勝一籌。 基礎 Gl

原创 JavaScript進階篇

瀏覽器對象      window對象 JavaScript 計時器 計時器setInterval() 語法: setInterval(代碼,交互時間); 參數說明: 1. 代碼:要調用的函數或要執行的代碼串。 2

原创 讓我們來聊一聊插件化吧---高深莫測

現如今插件化的思想和應用在Android上越來越多了,各式各樣的方案也是層出不窮,這篇文章旨在告訴大家插件化的核心思想是什麼,又有什麼樣的實現方式。 前言 首先,這篇文章的題目爲什麼不沿用我之前xxxx!xxxxx這樣的風格呢,因爲

原创 LRU緩存實現(Java)

LRU是Least Recently Used 的縮寫,翻譯過來就是“最近最少使用”,LRU緩存就是使用這種原理實現,簡單的說就是緩存一定量的數據,當超過設定的閾值時就把一些過期的數據刪除掉,比如我們緩存10000條數據,當數據小於100

原创 JNI/NDK開發指南(三)---Android NDK開發Crash錯誤定位

在Android開發中,程序Crash分三種情況:未捕獲的異常、ANR(Application Not Responding)和閃退(NDK引發錯誤)。其中未捕獲的異常根據logcat打印的堆棧信息很容易定位錯誤。ANR錯誤也好查,And

原创 hashMap的實現原理解析

聊到HashMap我們通常會聯繫到HashTable,那麼就讓先來說一下他們們的區別。 下面有些是看別人分享的路徑是:http://blog.csdn.net/vking_wang/article/details/14166593  

原创 Android+NDK

Android開發文檔   Android中文API 開源代碼  幾乎每天都有更新   23code  更新的不是特別頻繁,但還是不錯   開源項目  這個是Github上比較經典的   MaterialDesign  這個Materi

原创 JNI/NDK開發指南(五)---C/C++訪問Java實例方法和靜態方法

通過前面5章的學習,我們知道了如何通過JNI函數來訪問JVM中的基本數據類型、字符串和數組這些數據類型。下一步我們來學習本地代碼如何與JVM中任意對象的屬性和方法進行交互。比如本地代碼調用Java層某個對象的方法或屬性,也就是通常我們所說