原创 NDK系列文章(三)JNI基礎

Java和C/C++ 中的基本類型的映射關係 下表中的數據爲JNI基本數據類型及對應的長度 如何配置cmakelist.txt 配置編譯動態庫和靜態庫 add_library(jinInterface SHARED librar

原创 NDK系列文章(二)C語言基礎

函數及參數傳遞 函數有很多叫法,比如方法、子例程或程序,等等。 內部函數:內部函數又稱靜態函數。使用內部函數,可以使函數的作用域只侷限於所在文件。即使在不同的文件中有同名的內部函數,也互不干擾。提高了程序的可靠性。 stati

原创 Sqlite3知識總結二(高級用法)

現有兩張表用於下面的演示:company、department. 多表查詢 SQLite 的 Join 子句用於結合兩個或多個數據庫中表的記錄。JOIN 是一種通過共同值來結合兩個表中字段的手段。 SQL 定義了三種主要類型的連

原创 Java函數式編程四之並行化操作

Java函數式編程三 並行和併發 併發和並行是兩個不同的概念,它們的作用也不一樣。併發是兩個任務共享時間段,並行則是兩個任務在同一時間發生,比如運行在多核 CPU 上。如果一個程序要運行兩個任務,並且只有一個 CPU 給它們分配了

原创 Java函數式編程二之常用流操作

Java函數式編程一 函數式開發旨在幫助程序員寫出更好的代碼,如Java8引入的流(Stream)使程序員得以站在更高的抽象層次對集合進行操作!Stream 是用函數式編程方式在集合類上進行復雜操作的工具。 傳統循環操作有很多弊端

原创 Sqlite3知識總結一(基礎知識及相關要點)

數據庫的知識點有不少:基本語法、數據類型,數據庫的創建、附加、分離等,核心操作還是表的增、刪、改、查四個部分。表的創建和刪除分別使用create和drop命令,比較簡單,不做討論,下面只探討數據記錄的增刪改查這四個部分。 假定已經

原创 Java深入解析筆記

關鍵字與標識符 goto、const、true、false、null goto是Java裏的保留字(不使用的關鍵字),在java裏使用標籤實現跳轉: public class Test1{ public static vo

原创 Java函數式編程三之收集器

Java函數式編程二 方法引用 Lambda 表達式有一個常見的用法,即調用參數。比如獲取學生姓名: student -> student.getName() java8提供了一個簡寫語法,叫做方法引用,用方法引用重寫上面的 L

原创 Java函數式編程一之基礎介紹

簡介 在Java8之前面對大型數據集合,Java 還欠缺高效的並行操作,爲了編寫這類處理批量數據的並行類庫,同時也是爲了更好的支持函數式編程,在語言層面上修改了現有的 Java:增加 Lambda 表達式。 Lambda Lamb

原创 實現子view滑動一段距離後,讓父view進行滑動

思路分析 1.開始子view需要滑動,所以要獲取事件,即此時父view不能攔截事件 2. 後期父view需要滑動,此時父view需要進行攔截,獲取事件 將上面的分析轉化爲僞代碼: //子view @Override

原创 Android熱修復原理

基本概念 熱修復是針對apk而言的,所以先來看看apk裏都有些什麼東西 assets:保留工程中的assets目錄,這些文件是原始文件,包含其他jar裏的assets文件 lib:so文件 META-INF:簽名相關文件 re

原创 Java線程池

線程池的定義 Java中的線程池是運用場景最多的併發框架,幾乎所有需要異步或併發執行任務的程序都可以使用線程池。線程池就是將線程進行池化,需要運行任務時從池中拿一個線程來執行,執行完畢,線程放回池中。 在開發過程中,合理地使用線程

原创 Bitmap內存管理及三級緩存的建立

基礎知識 內存大小的計算 ARGB_8888各佔8位,4個字節,內存爲widthheight4 RGB_565和ARGB_4444, 佔兩個字節,內存爲widthheight2 獲取Bitmap所佔內存 getByteCount

原创 NDK系列文章(一)—— NDK概覽

JNI 簡介 名稱:Java Native Interface 即Java本地接口 作用:使得Java與本地其他類型語言(如C、C++)交互 JNI是Java調用Native語言的一種特性,JNI屬於Java的,與Android

原创 如何卸載Android手機內置應用

很簡單,兩條命令搞定: //查看當前打開應用報名 adb shell dumpsys window | grep mCurrentFocus //根據包名卸載應用 adb shell pm uninstall [-k] [--u