原创 android studio 能在真機上啓動程序,不能在模擬器上啓動(模擬器能啓動,adb也能識別)

編輯於2016年6月18日 雖然好得有點莫名奇妙(這裏需要感謝我的QQ羣友),不過還是做了一點總結.  可能第一步需要檢查sdk路徑是否正確設置. 這時候再運行程序突然又報錯,這會兒連真機都不能運行了(之前沒報,在真機上是能正常運行的,

原创 一個關於invalidateOptionsMenu方法的小問題

編輯於2017年8月14日 執行invalidateOptionsMenu()這一句代碼後,並不會立即執行onCreateOptionsMenu()方法。所以如何判斷已經或者再次創建了menu,然後再執行ActionProvider相關的

原创 俄羅斯方塊Android版

經典俄羅斯方塊Android版緣起界面設計方塊片的設計遊戲初始化自動下落的處理按鈕點擊事件的處理可能多個指令同時發送的處理REFRESH_BLOCK_BOARD指令:方塊片在左側界面中顯示UP、LEFT、RIGHT指令什麼代表相撞

原创 Gradle自動化構建項目

Gradle自動化構建項目Gradle簡介Gradle構建文件和創建任務指定構建文件Gradle構建文件的結構Gradle構建過程顯式執行指定任務創建Task的常用方法創建Task的常用步驟常見的任務類型Gradle的屬性爲已有屬

原创 點擊事件埋點

TrackAppClick 點擊事件自動埋點 App模塊 各種點擊事件埋點測試 button.setOnClickListener(new View.OnClickListener() { @Overri

原创 本地maven倉庫的使用

以之前插件化的例子PluginDemo做個開場。 Step1:在需要製作成庫的module的build.gradle中添加 apply plugin: 'maven' ... uploadArchives { repositor

原创 不,這只是個名字,一個代號,你可以叫,我也可以叫

提到事件總線我們總會想到EventBus和Otto,他們之間的區別是: 1、Otto可以使用@Produce的方式來發布事件; 2、EventBus提供了單例模式; 3、EventBus支持threadMode; 4、EventBus支持

原创 Arouter原理學習

##ARouter實現組件通信的原理 step1:每個上層模塊通過編譯時註解生成java類(內含組件映射表); step2:用戶調用初始化方法,底層模塊反射上層模塊生成的java類,獲取到生成類中到映射表,把各個模塊映射表合併成總映射表;

原创 如何學習插件化

現在的進展 見PluginDemo ,現在實現了插件中類、資源、Activity的加載。 1、類的加載 step1:通過反射把插件dex和宿主dexElements合併成一個新的dex數組,替換宿主之前的dexElements字段;

原创 Android內存泄漏以及MVC(P、VM)

內存泄漏的問題,其實就是已經過期的對象仍被引用(非過期對象互相引用),導致已經過期的對象不能被GC自動回收的問題。 1、把過期的對象引用作爲參數傳給了還有生命週期的方法,如線程、計時器需等方法執行完畢纔會釋放內存;2、非靜態內部類引用過期

原创 《深入探索Android熱修復技術原理》讀後感

主要介紹了阿里Sophix方案。 熱修復的概念: AndroidManifest出現BUG是無法修復的,想增加四大組件,可通過預先在安裝包的AndroidManifest裏面埋入代理的組件,在每次新增組件時,通過預埋的代理組件實現與系統進

原创 按鍵精靈,簡單遊戲腳本

編輯於2017年09月02日 按鍵精靈主要的幾個功能界面如下: 左邊的界面,可以拉取一些控件,實現可視化交互。附件就是存放腳本所需資源的地方,方便發佈後分享給他人。上方比較重要的就是調試,發佈和抓抓了。抓抓就是用來抓取點座標顏色,抓取圖片

原创 Matrial Design(四)

編輯於2017年04月01日 先看一下xmind。 一般來說沒什麼問題,下面展示demo以及效果圖。 第一個頁面   public class MainActivity extends AppCompatActivity { p

原创 自定義一個標籤式圖標

編輯於2017年09月22日 實現效果如下:   public class SignView extends View { private Paint mPaint; private Paint mTextPaint;

原创 自定義共享元素動畫(imageView)

編輯於2017年04月02日 這個需求看起來非常簡單,莫過於第一個頁面拿到控件位置、大小信息傳送給第二個頁面,然後第二個頁面再拿到新的控件位置、大小,根據前後位置大小關係,執行相應的位移縮放動畫。 然而上面的想法就有一個很致命的錯誤,應該