原创 Android7.0 Doze模式流程

Doze模式的主要實現是在framework中的DeviceIdleController類:分爲Deep Idle 和 Light Idle模式兩種 Deep Idle模式 先說下用到的幾個時間常量值(括號類的是原生的時間,右邊的是項目

原创 Android O Touch事件處理流程源碼分析

本篇文章主要是以Activity上的觸摸事件爲例,事件從InputReader,InputDispatcher傳到ViewRootIpml開始談起。首先是時序圖其中最複雜的就是ViewGroup的dispatchTouchEvent方法將

原创 Android UsageStatsManager的使用

背景:在做一個App Lock的demo,完全從應用層的層面去實現。 在5.0以下通過ActivityManager類的getRunningTasks()獲取當前打開的所有應用程序 。 在5.0版本之後廢棄了getRunningTas

原创 Android GestureDetector手勢識別的使用

1  實例化GestureDetector,傳入的參數是context和onGestureListener mGestureDetector = new GestureDetector(this,new MyGestureDector

原创 兩種方式實現Activity中狀態欄,導航欄的隱藏與顯示

一 、通過getWindow().getDecorView().setSystemUiVisibility()傳入不同的flags值實現Activity佈局和狀態欄,導航欄之間的關係: 1)View.SYSTEM_UI_FLAG_FULL

原创 activity全屏實現沉浸式效果,並且單獨觸摸不會彈出虛擬按鍵

方法一: 設置activity的theme屬性隱藏標題欄和狀態欄,然後在onWindowFocusChanged方法中調用方法 mLCDChangeLayout.setSystemUiVisibility(View.SYSTEM_UI

原创 AndroidStudio使用時gradle插件版本太低

更新了一次sdk的版本,然後使用AndroidStudio時會報錯,顯示gradle版本太舊。 Error:(1, 0) The android gradle plugin version 2.5.0-alpha-preview-02