原创 android8.0的通知

android系統升級到8.0了以後,需要適配notification,如果不適配,發出的notify顯示不出來。 8.0的notification,新添加了通知渠道。 通知渠道是什麼? 爲什麼需要渠道? 怎麼用? 1、通知渠道,實際是g

原创 Handler中有Loop死循環,爲什麼沒有因爲死循環卡死?

今天一個同事去面試,遇到這個問題。 我也不是很明白,去百度一圈,明白個6成,先記錄下來。 這個問題有2個點:死循環 和 卡死。 1、死循環:爲什麼要在ActivityThread中調用Looper.loop創建死循環代碼? 2、卡死是怎

原创 android關於藍牙BLE的開發

 android藍牙BLE的開發: 1、最新的api是使用  bluetoothLeScanner.startScan 廢棄了  adapter.startLeScan 2、順序 import android.bluetooth.Bl

原创 runtime是什麼

在計算機系統中,每一種編程語言,都有一個運行環境Runtime。 比如:java語言的運行環境是jvm,java虛擬機。   運行環境用來解釋執行語言中的語句。   大部分編程語言都只能在自己的運行環境中執行,但是有一些語言,可以穿梭在不

原创 android 項目中應該添加哪幾種so文件夾?abi這個設置?

最近感覺項目apk包太大,已經快50M了,需要減小。 目標瞄準了so文件。現在包含了三種類型的so。那麼應該留哪個?去掉哪個呢? 看一位大佬的文章:https://blog.csdn.net/ouyang_peng/article/de

原创 子線程中能創建Handler嗎?

1、可以創建,但是不能直接創建。 需要先Looper.prepare(); 2、主線程中的handler是,子線程執行完後,更新主線程的數據。 子線程創建handler,主線程給子線程發消息,更新子線程的數據。 3、handler機制:

原创 Service和thread的不同使用場景

1、我們會混淆這2個類是因爲,都可以執行耗時操作。 但是耗時操作,分很多中類型。 比如:網絡請求,是與activity相關的,用thread,響應得到的數據,更新ui 比如:下載,與activity無關,activity關閉了,也要繼續下

原创 android修改assets下的Properties不生效

項目中遇到修改Properties中的url,使用網上的方法,沒有生效。 我自己研究明白了,mark一下。 首先,我們知道獲取Properties的值,有2中方法: 方法一: property.load(context.getAss

原创 java的垃圾回收機制GC

一:java的垃圾回收機制,總題來說分2種: 一種引用計數算法,一種跟搜索算法。 引用計數的算法,有個bug:2個相互引用的對象,引用的計數一直是1,永遠不會被回收。 跟搜索算法:選定一些對象作爲跟對象,組成GC rootset的集合,從

原创 System APP 與普通 APP 不同點

在 Android 系統裏,有兩種類型的 App 存在: 一種是系統級 App ,比如打電話,發短信,拍照等等,這些 App 最明顯的特點就是 普通方法不可以卸載。 另一種是普通 App ,用戶從應用市場上下載主動安裝的 App ,這樣的

原创 jam、dvm、art區別

不同: 1、dvm執行的是dex文件,jvm執行的是class文件。 2、dvm是基於寄存器,jvm基於內存棧堆。

原创 一個漢字佔用多少個字節?不同的編碼方式

java中不同的編碼方式,一個 漢字佔的字節大小不同 iso-8859-1:一個漢字,一個字節 gbk:一個漢字,2個字節 utf-8:一個漢字,3個字節 實例如下 public static void main(String

原创 ARouter原理 記錄用

Android中的組件化,組件化中兩個單向依賴的module之間需要互相啓動對方的Activity,因爲沒有相互引用,startActivity()是實現不了的,必須需要一個協定的通信方式,此時類似ARouter和ActivityRout

原创 RSA公鑰、私鑰的生成詳解,包含Java、PHP、Android、iOS端

說明: Java和PHP爲服務端,Android和iOS爲客戶端。 Java和Android所用的公鑰、私鑰是同樣的格式,私鑰需要PKCS8格式,默認生成的私鑰是PKCS1格式的 php私鑰需要PKCS1格式的 iOS私鑰需要.p12的

原创 android繪製一個動態時鐘的view

android繪製一個動態時鐘的view。 項目中需要在240x240分辨率的設備上,開發一個時鐘。 注意幾點: 1、canvas.save();和canvas.restore(); 成對出現。 2、鐘錶的心,最後畫,樣子好看。 代碼中的