原创 android P版本 位置服務使用及數據精度處理。

(一)在使用位置服務之前,最好了解一下我們的對象,這樣才能儘量少的犯錯誤。 問題:位置服務是什麼?位置服務的有那些特性呢?   a.位置服務是什麼?(百度百科) 對於位置定義有如下幾種方法: A)AOA(angle of arrival

原创 Android 沉浸式導航欄_全面屏適配

由於Android Q出現了系統導航的3中手勢切換,沉浸式的導航欄會越來越受大家的關注,所以我根據Android Q Labs的視頻。利用java文件進行了沉浸式導航的嘗試,供大家借鑑交流。 在新建的Android應用中原始的界面是很醜的

原创 android O版本 設置(Settings)模塊總結--設置的一級界面的加載

O版本的設置界面相對有N有了一些變化,O上面增加了頂級類別的菜單,而之前一些在一級菜單的則移動到了二級界面裏面, 如"WIFI","移動網絡"等之前是在一級界面的,而在O上則移動到了新菜單"網絡和互聯網"中,但是在數據在加載方面,並未做較

原创 android O版本 設置(Settings)模塊總結--設置的啓動界面選擇

之前一直在公司做設置模塊的功能修改,現在轉到了其它模塊,所以就總結一下吧,有不足之處,還請指正. 設置是整個android系統的重要應用,涉及的都是系統功能,本文只是對其結構進行解析,功能控制等不做說明 (1)設置的界面選擇 設置裏面的A

原创 Android Q 滑屏解鎖誤操作判斷規則

滑屏解鎖誤判斷規則。 android P之前: com.android.systemui.statusbar.phone.PanelView protected boolean flingExpands(float vel, f

原创 android Q 顯示系統(一) VSync

VSync是垂直同步(Vertical Synchronization)的簡稱。基本的思路是將設備的FPS和顯示屏同步起來。其目的是避免顯示出現"撕裂"現象,此文章主要是在android 10的代碼上追下VSync的主要流程,以後用來自己

原创 Android 10 手勢導航源碼分析

Android O之前的虛擬按鍵,基本的控制方法都是在SystemUI中做處理的,在Android 10上爲了在手勢導航操作時其動畫更加流暢,與Launcher互動效果更好,google的設計師就把手勢導航相關的操作放到了Launcher

原创 android P版本 系統穩定性問題案例分析(一)

一、無鎖狀態下,滅屏後亮屏設置界面滑動無效。 問題分析: (1)可在其他應用界面復現,非應用問題。 (2)問題必現,點擊動作有效但無動畫效果,滑動後界面不刷新但可確認對應位置在後臺已發生變化,非輸入系統錯誤。 (3)滑動後界面沒有刷新,截

原创 android P版本 系統穩定性問題案例分析(二)

前言: 對這個專題總結就到此爲止了。 android是一個內容龐大的操作系統,若沒有足夠的時間去研究學習那就只知皮毛了,遇到問題也無法真正的解決,所以深入源碼、瞭解原理纔是系統穩定性的關鍵,案例看起來是沒有什麼意義的。而且我對案例的總結只

原创 Systemui源碼分析 -- 狀態欄圖標顏色變化過程.

一  framework層對狀態欄顏色以及分屏狀態時顏色的處理過程。 PWM根據所有窗口狀態選擇合適窗口的WindowState,依據WindowState開始更新SystemUI的狀態。此處主要分析對狀態欄有影響的重要函數步奏。 (1)

原创 Andorid P ActivityManagerService -Stack結構

Andorid 9.0 ActivityManagerService 中的Stack結構如下.    (1) frameworks/base/server/core/java/com/android/server/am/ActivityM

原创 Android P WindowManager (三) window添加時主要參數的分析(2) client(IWindow)。

在WindowManagerService.addWindow每次的client(IWindow)是不同的,而client是什麼呢?這個要從這個client在應用的創建開始了 (1)應用端client的初始化和傳遞 frameworks/

原创 Android P WindowManager (二) window添加時主要參數的分析(1) WindowSession。

由《Android P 系統界面 (一) 直觀感受每個window的添加》中我們可以看到每次的添加一個window時有以下的規律: 1.每次的(IWindow)client是不同的 2.每個window添加時都會生成一個WindowSta

原创 Android P WindowManager (一) 直觀感受每個window的添加

爲了更直觀的看到window的添加,我在WindowManagerService.java中添加如下log,這樣可以看到每次添加窗口的細節   +++ b/base/services/core/java/com/android/serv

原创 android TypedArray

 位置:frameworks/base/core/java/android/content/res/TypedArray.java  Container for an array of values that were retrieved