原创 代碼生涯的第一個開源庫 劉海屏適配

代碼生涯的第一個開源庫,NotchAdapter 歡迎大家點評 Star 1.前言 自從2017年 iphone X 問世,劉海屏幕(Notch Screen)也開始流行。但是正如上圖官方文檔所介紹的,Android 官方是

原创 Git筆記:撤銷本地提交 & 恢復遠程倉庫提交

目錄 1. 撤銷還沒有推送到remote倉庫的提交 1.1 完全撤銷-捨棄你的全部改動,銷燬提交 1.1.1 撤銷提交後又想恢復剛剛銷燬的提交 1.2 撤銷-但保留你的改動 1.3 最安全輕微的撤銷  2. 撤銷已經推送到remote倉庫

原创 Android Service & IntentService學習總結

目錄 1. Service介紹 1.1 Service是什麼,有什麼作用 2. Service生命週期 3. 自定義Service例子 3.1 觀察Service生命週期 3.2 綁定Service例子 3.3 startService

原创 Android 多線程學習

目錄 1. 什麼是進程,什麼是線程,兩者有何區別 2. 線程生命週期 2.1 Android 主線程與子線程概念理解 3. Java 多線程實例Demo 3.1 繼承Thread 3.2 實現Runnable接口 4. Android 多

原创 Android Studio常用的快捷鍵(Mac)

最近一個月都是用自己的筆記本開發,沒有外設鍵盤與鼠標,這時候越發覺得 Android Studio 快捷鍵的方便之處,抽空總結了一下我自己常用的幾個快捷鍵,分享給大家。   關於搜索查看的快捷鍵 搜索當前類中的內容 cmd + F

原创 Android Broadcast & BroadcastReceiver學習

目錄 1. 什麼是Broadcast & BroadcastReceiver 1.1 Broadcast是什麼?有什麼作用? 1.2 BroadcastReceiver是什麼?什麼作用? 2. Broadcast的類型 2.1 標準廣播

原创 Android 設計模式之簡單工廠模式

目錄 1. 工廠模式定義 2.什麼時候用工廠模式 3. 簡單工廠模式實踐案例Demo 4.簡單工廠模式的優缺點 4.1 優點 4.2 缺點 1. 工廠模式定義 什麼是工廠設計模式?:             根據名字解析“工廠模式”, 首

原创 Android 如何正確的重寫 onDestroy() 方法

不知道大家在寫 Android 的時候有沒有遇到過這樣的一個疑惑:當你在重寫 onDestry() 的方法時,有沒有猶豫過,我們自己的方法,是應該放在 super.onDestroy() 方法的上面呢?還是應該放在 super.o

原创 Git筆記:將特定的單個提交合併到指定的分支上 (git cherry-pick)

背景:挑選特定的 commit 提交合併到指定分支 在實際的開發過程中,我們通常會有 develop 開發分支(來保持最新的代碼更新),以及 release 版本分支(對應我們 App Store 上線的版本,比如:版本 V1.0),產品

原创 Android SQLite 使用方法(含完整案例)

目錄 1. Demo展示 2. 實現方法  2.1 定義數據庫的結構 2.2 使用SQLiteHelper來創建數據庫 3. 注意事項 1. Demo展示 Demo 案例:實現聯繫人列表功能,我們可以增加聯繫人,修改聯繫人,刪除聯繫人,以

原创 Android AsyncTask使用方法(防止內存泄露)

目錄 1. 定義 1.1 AsyncTask 的三個泛形參數 1.2 AsyncTask的4個核心方法 1.3 取消任務 2. 簡單Demo上手 2.1 Java 版本 2.2 Kotlin 版本 3. AsyncTask 如何防止內存泄

原创 Android Serializable及Parcelable使用方法

爲什麼需要序列化 當我們需要在多個 Activity 之間傳遞對象時,我們不能直接傳遞對象的引用,我們應該對對象進行序列化,將對象轉換成可傳輸的狀態,然後放到 Intent 中進行傳遞。在 Android 中,我們可以通過 Ser

原创 我一次性爲 Wanandroid 開發了Java與Kotlin兩個版本

目錄1. 介紹1.1 功能效果圖展示1.2 項目設計模式2. 代碼解析 1. 介紹 最近基於 Wanandroid開放API 開發了一款十分簡單的APP,, 採用 Androidx + MVVM + Retrofit + data

原创 Android Handler深入學習(源碼分析)

目錄: 1. 前言 在上一篇關於 Android Handler使用方法 的文章中學會了 Handler 的使用方法,然而又是知其然不知其所以然的狀態,這次較深入的學習一下 Handler 的源碼。 在分析源碼之前,先來了解一下

原创 升級gradle 4.0.0 出現Unable to find method org.gradle.api.tasks.TaskInputs.file

今日將Android Studio 升級到了4.0,同時也將 Gradle 升級到了 4.0.0。項目配置如下: project 下的 build.gradle dependencies { classpath 'com.