原创 【Android】CalledFromWrongThreadException 深入源碼分析

先上結論 出現此問題的原因是:在非 UI 線程中創建了 Dialog,而在 UI 線程中調用了 show() 方法 問題還原 在使用 dialog 的時候,因爲線程問題,在調用 dismiss() 方法的時候,出現如下常見的 cr

原创 【Android】動態設置 View 的背景顏色 BackgroundColor 無效的問題

問題描述 我們都知道 setBackgroundColor() 方法用於動態設置 view 的背景顏色。今天在做需求的時候,需要根據情況動態更新自定義 view 的背景顏色,於是就想當然的這麼寫: mItemView.setBac

原创 【Android TextView/EditText 不允許換行】android:lines 與 android:maxLines 與 android:singleLine

在開發需求過程中,遇到 要求用戶的暱稱輸入框 單行 輸入展示,且有最大字符數限制,於是 就想當然的使用 android:singleLine 屬性,結果被 lint 警告了,提示已被廢棄,推薦使用android:maxLines;

原创 React Native 啓動流程 源碼剖析

開始之前   開始分析之前,新建一個名爲 RnDemo 的空項目,RN 版本選擇 0.58.1,查看項目自動爲我們生成 MainActivity.java 和 MainApplication.java 文件,我們的分析就從這兩個文

原创 第90百分位數的概念與計算

題目描述: 思路: 知乎上的討論   今天做了道題,剛開始沒讀懂題,網上搜了一下關於第95百分位的解釋,大家各有說法,各有自己的理解。但是看了很多人的評論也是,表示基本都看不懂。   從維基百科上可以找到這麼一段話: Ther

原创 【Android】 【Dialog】CalledFromWrongThreadException 深入分析

先上結論 因爲在非 UI 線程中創建了 Dialog,而在 UI 線程中調用了 show() 方法 問題還原 在使用 dialog 的時候,因爲線程問題,在調用 dismiss() 方法的時候,出現 crash,即 CalledF

原创 源碼分析:XML 佈局裏 設置 View 的點擊事件

在 APP 開發過程中,給一個 View 設置監聽點擊事件是常見的需求。一般兩種實現方式: 1、設置 listener view.setOnClickListener(onClickListener); 2、在 XML 文件中設

原创 adb 命令行安裝 apk 時,出錯:Failure [INSTALL_FAILED_TEST_ONLY]

一、問題還原: 在日常工作過程中,經常會遇到測試、產品同學,來找我們安裝個測試版的 apk。結果我們打完 deubg 包,卻發現通過使用 adb install 命令安裝後提示 INSTALL_FAILED_TEST_ONLY。但

原创 Dialog 究竟會不會觸發 onPause() 生命週期函數?

謠言: Dialog 會觸發 onPause() 算是 Android 開發領域流傳最廣的謠言之一了。 Demo 驗證: 建議大家自己動手操作一下。 MainActivity.kt class MainActivity : App

原创 小米手機安裝 charles 證書 windows10

初衷: 抓包的時候如果碰到 https 鏈接的地址,你會發現都是看不了內容的,都顯示 前提: windows charles 配置正確,手機 代理 配置正確 失敗路徑: 按照 Charles 的提示,手機打開 chls.pro

原创 charles 抓包,數據格式亂碼問題解決

環境: windows 10、android studio3.3、小米手機、charles 4.1.4 問題描述: 很多朋友都會遇到 charles 抓包數據顯示亂碼的問題,網上也有各種解決辦法。其中最多的就是配置 如下 然而,

原创 發佈開源項目到 Bintray、Jcenter 遇到的坑

發佈開源項目到 Bintray、Jcenter 遇到的坑 至於正常的發佈流程,網上都有。 配置依賴: project 的 build.gradle dependencies { // 添加上傳到jcenter所需的插件

原创 Kotlin as 類型轉換運算符

起源:封裝 DialogFragment 時自定義的 ViewHolder fun <T : View> getView(@IdRes viewId: Int): T { var view = mViews?.get(vi

原创 SimpleDateFormat Y 與 y 區別 及 崩潰 Unknown pattern character 'Y'

Bugly Crash java.lang.IllegalArgumentException:Unknown pattern character ‘Y’ 影響範圍: target 24 以下低版本手機,在設置年月格式時,使用下述代碼,

原创 一次搞懂 GreenDao 3.2

一、GreenDao 簡介 greenDAO 是一款開源的面向 Android 的輕便、快捷的 ORM 框架,將 Java 對象映射到 SQLite 數據庫中,我們操作數據庫的時候,不再需要編寫複雜的 SQL語句, 在性能方面,gr