原创 SharedPreferences源碼解析和可能ANR的情況及建議

ANR使用不當可能會造成ANR,爲什麼這樣說呢?下面我們分析源碼: 一般來說我們是通過Context實例獲取SharedPreferences對象的,即: public abstract SharedPreferences ge

原创 Handler,Looper,MessageQueue,ThreadLocal的關聯

一.前言 本以爲這些東西是老生常談,並且作爲Android開發的基礎入門知識,是必須熟練掌握的,但是發現每每提起Handler及Looper,ThreadLocal的原理,總是要去翻閱資料,或者查看源碼再捋一遍,乾脆花一點時間整理

原创 DialogFragment與PopWindow

DialogFragment 比Dialog優勢,具有生命週期,比如旋轉屏幕的時候,activity重建,dialog就不會重新創建,由於不是正常銷燬的,會造成內存泄漏,而DialogFragment會隨着activity的銷燬正

原创 Flutter打包aar並且集成現有Android項目

一、前言 Flutter現在已經很火了,但是如果我們要想使用Flutter開發,在新的Flutter項目上集成以前的所有代碼肯定是不現實的,同時又不想將Flutter直接侵入到我們的項目結構中去,於是最優解就是將開發的Flutte

原创 Android共享元素動畫

Andriod 5.0及之後,開始支持共享元素動畫,該動畫主要用於兩個activity之間,兩個Activity可以共享某些控件,Activity A跳轉到Activity B的時候,A的某個控件能自動移動到B的相應控件的位置,產

原创 Linux命令行與Shell腳本編程

一、bash shell基本命令 1、cd destination 進入目錄,可以是相對路徑,也可以是絕對路徑,如果後面沒有參數,則直接跳回主目錄 2、pwd 顯示當前目錄 3、. 表示當前目錄 4、.. 表示當前目錄的父目錄 5

原创 Flutter學習知識點總結

一、Dart語言簡介 Dart語言是一種真正面向對象的語言。下面我挑幾點比較重要的簡單實用的介紹一下,因爲文章後面會涉及這些語法。 函數式編程 說Dart是真正的面向對象的語言就在於它把函數也認爲是對象,類型爲Function。這意味

原创 Android sdk適配指南心得

6.0適配 權限適配 自己封裝的庫 XstartActivityForResultAndXPermission 7.0適配 8.0適配 1、Android O 適配詳細指南 主要關注一下透明Activity崩潰問題 2、Andr

原创 Flutter編譯模式

一、編譯模式的分類 編程語言達到可運行的過程需要經過編譯,因爲機器最終認識的是二進制,所以編譯就涉及到編譯模式,編譯模式分爲兩類:JIT和AOT。 JIT JIT全稱Just In Time(即時編譯),典型的例子就是v8,它可以即時

原创 現有Android項目集成Flutter

一、前言 Flutter現在已經很火了,但是如果我們要想使用Flutter開發,在新的Flutter項目上集成以前的所有代碼肯定是不現實的,同時又不想將Flutter直接侵入到我們的項目結構中去,於是最優解就是將開發的Flutter項

原创 事件分發機制與NestedScrolling機制

事件分發機制與NestedScrolling機制 一、事件分發機制 1.理論分析 事件分發涉及的是View和ViewGroup,相關事件:dispatchTouchEvent、onInterceptTouchEvent、OnTouch

原创 AOP淺析以及Android對AOP的應用

一、前言 大家都知道OOP,即Object-Oriented Programming,面向對象編程。本篇我們要講的是AOP,即 Aspect-Oriented Programming,面向切面(方面)編程。平常我們開發都是用OOP的編

原创 更優雅的使用startActivityForResult及權限請求

一、問題所在 Android頁面之前的數據回傳我們一般使用startActivityForResult來處理,這沒什麼問題,但問題就在於我們所有的處理結果都放在onActivityResult中,在裏面根據不同的requestCod

原创 Android WebView與javaScript交互

操作前提 webview.getSettings().setJavaScriptEnabled(true); 通過webView調用JavaScript方法 webView.loadUrl("javascript:METHOD") 或

原创 Android中Binder淺析(進程間通信)

一、概述 因爲進程間的資源是不能共享的,所以爲了保證進程間能達到通信的目的,每個系統都存在自己的IPC(Inter-Process Communication)機制。Android系統中,涉及到進程間的通信底層都是依賴於Binder機