原创 很好的PyQt5中文教程

很好的PyQt5中文教程 http://code.py40.com/pyqt5/

原创 Windows 中 使用python 一鍵下載android r代碼

爲了在window方便看代碼,所以下載google原生android r代碼,寫了一段python腳本方便下載 1.  安裝GIT git官網下載:https://git-scm.com/downloads/ 安裝git到如下路徑  C:

原创 Android SurfaceFlinger服務(二) ----- 本地Surface創建

Android顯示系統層次分析 應用層,app從WindowManager服務獲取圖層,渲染圖層 WindowManager管理層,主要管理APP渲染的圖層,調用SurfaceFlinger服務, 創建Surface,並將Surface傳

原创 Android SurfaceFlinger服務(四) ----- 消息機制MessageQueue

SurfaceFlinger有着自己的消息隊列MessageQueue,用來處理顯示相關的消息,比如Vsync消息。 相關文件: frameworks/native/services/surfaceflinger/MessageQueue

原创 Android SurfaceFlinger服務(七) ----- 圖像的合成

android應用中申請的Surface在SurfaceFlinger服務中都有對應有圖層Layer與之對應。將這些圖層合併且輸出到顯示外設是SurfaceFlinger的工作重點。本文來分析下合成的過程。合成工作在接收到VSync消息(

原创 Android SurfaceFlinger服務(八) ----- 圖像的輸出

SurfaceFlinger合成後就進行圖像的輸出的工作。在圖像輸出時,存在硬件合成器與不存在的情況有些差別。軟件合成時用到圖像緩衝區生產者與消費者模型。首先來看看圖像緩衝區的初始化。 void SurfaceFlinger::init

原创 Android SurfaceFlinger服務(六) ----- VSync信號的分發

HWComposer模塊產生VSync信號後要經過分發才能送達到關心VSync事件的模塊中去。VSync信號分發大致流程爲HWComposer->SurfaceFlinger->DispSync->DispSyncSource->各個具體

原创 Android SurfaceFlinger服務(五) ----- VSync信號的產生

Android爲了增強界面流暢度引入了VSync機制。VSync信號一般由硬件產生,爲了兼容一些老的機器,也可以軟件產生。因些,就可以分爲硬件VSync和軟件VSync。VSync的生成邏輯主要在HWComposer裏面。相關文件如下:

原创 Android SurfaceFlinger服務(三) ----- 本地圖層Layer創建

在上一篇文章中,主要分析了Surface的創建過程,對於Layer圖層的創建並沒有深入跟蹤分析。這篇文章將分析Layer圖層的創建,並分析handle gbp這兩個變量的來源。 在SurfaceFlinger中會根據flags的值創建不同

原创 Android SurfaceFlinger服務(一) ----- BufferQueue分析

生產者和消費者模型是編程中運用比較廣泛的模型。在SurfaceFlinger圖像繪製、合成、顯示也用到了該模型。利用該模型合理的管理圖像緩衝區buffer。讓整個android系統從繪製到顯示的過程有條不紊的進行。 BufferQueue

原创 Android AAPT詳解

    AAPT是什麼 AAPT - Android Asset Packaging Tool, 看全稱,就可知道AAPT是Android資源打包工具。在講這個之前,是有必要簡單說下Android是如何構建一個APK的。 上圖是Goog

原创 使用SurfaceView繪製複雜效果

  效果如下   風扇動畫粒子動畫      1.動畫分析: 根據複雜動畫分解成簡單的動畫 上面的兩個動畫可以分解成最外層擴展動畫以及裏面六邊形動畫 最外層動畫分解: 一個六邊形從中心出發到外邊,然後到另一個角,然後收回。裏面的動畫可以遮

原创 Nexus6P 刷機 root

刷機   1.配置ADB環境變量 點此鏈接下載 platform-tools,最新的windows版本名稱爲platform-tools-latest-windows.zip,然後解壓(本人解壓到download目錄下),配置環境變量。

原创 兩圓的外切線與內切線的切點算法

最近想畫兩球水滴效果所有在網上找兩圓外切點和內切點的算法,找了很久沒有找到所以自己寫了一個工具類來計算兩圓的公切線點。具體效果如下圖: 根據CircleUtils類的getCircleTangentPointOut方法返回外切點座標[r

原创 JNI調用串口

SerialTool.c#include <termios.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#includ