原创 Android中的引用

在JDK1.2以前的版本中,若一個對象不被任何變量引用,則程序就無法再使用這個對象。從JDK1.2版本開始,把對象的引用分爲4種級別,從而使程序能夠更加靈活的控制對象的生命週期。這4種級別由高到低依次爲Strong Referen

原创 CMake的一些小問題

最近在學習Cmake,在學習的過程中遇到一個問題: 安裝共享庫和頭文件,在CMakeList.txt中添加了如下命令 INSTALL(TARGETS hello hello_static LIBRARY DESTINAT

原创 Android Hotfix

Hotfix:讓應用能夠在無需重新安裝的情況實現更新,幫助應用快速建立動態修復能力。 熱補丁技術在2015年開始爆發,目前已經是非常熱門的Android開發技術。Android平臺出現了一些優秀的熱更新方案,主要可以分爲兩類:

原创 Java synchronized&volatile

synchronized可以保證方法或者代碼塊在運行時,同一時刻只有一個方法可以進入到臨界區,同時它還可以保證共享變量的內存可見性 Java中每一個對象都可以作爲鎖,這是synchronized實現同步的基礎: 普通同步方法

原创 OpenCV for Android (6)——通過使用JNI實現骨架化

OpenCV在Android上雖然有自己的開源庫,能夠處理很多的圖像問題,但是一旦涉及到一些需要使用算法方面的問題比如骨架化或者像素點操作的問題時,其處理速度會變得很滿,且處理效果並不是十分完美。 例如我最近需要實現書法字的骨架化

原创 Java 類加載器

每個編寫的”.java”拓展名類文件都存儲着需要執行的程序邏輯,這些”.java”文件經過Java編譯器編譯成拓展名爲”.class”的文件,”.class”文件中保存着Java代碼經轉換後的虛擬機指令,當需要使用某個類時,虛擬

原创 GridView & BaseAdapter設置四宮格的一些問題

最近在項目中需要在主頁中設置一個四宮格的頁面, 於是就使用了GrideView與BaseAdapter的組合,但是完成後它會滑動,並不是固定的,而且它也不是適應其父容器大小設置的. 要解決這個問題,我在BaseAdapter的ge

原创 Socket

網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱爲一個socket。 建立網絡通信連接至少要一對端口號(socket)。socket本質是編程接口(API),對TCP/IP的封裝,TCP/IP也要提供可供

原创 Java異常處理

異常是指程序運行時(非編譯時)所發生的非正常情況或錯誤,當程序違反了語義規則時,JVM就會將出現的錯誤表示爲一個異常並拋出。這個異常可以在catch程序塊中進行捕獲,然後進行處理。 異常處理的目的就是爲了提高程序的安全性與健壯

原创 Hashmap&Hashtable

HashMap和HashTable的區別一種比較簡單的回答是: HashMap HashTable 非線程安全的 線程安全的 鍵和值都允許有null存在 都不允許 效率高 效率低 1. HashMap是非線

原创 Java Thread run&start

實現並啓動線程有兩種方法: 1. 寫一個類繼承自Thread類,重寫run方法。用start方法啓動線程; 2. 寫一個類實現Runnable接口,實現run方法。用new Thread(Runnable target).st

原创 Appium在Dialog/DialogFragment關閉後找不到佈局元素的解決方法

Appium在Dialog/DialogFragment關閉後找不到佈局元素的解決方法 Appium在進行自動化測試時,當Dialog/DialogFragment關閉後找不到佈局元素。 該問題屬於一個Known Issue(點擊這裏

原创 Android中的矢量動畫

Android中的矢量動畫 自Android 5.0(API 21)開始,Vector drawable(矢量圖像)正式得到了支持,可以通過VectorDrawable和AnimatedVectorDrawable來實現矢量圖像。不過

原创 Kotlin中的@JvmOverloads

Normally, if you write a Kotlin function with default parameter values, it will be visible in Java only as a full si

原创 React Native 列表的總結

React Native 列表的總結 FlatList和SectionList都是React Native中高性能的列表組件。他們有着共同的特點: 完全跨平臺。 行組件顯示或隱藏時可配置回調事件。 支持單獨的頭部組件。 支持單獨的尾