原创 App 文檔方案

1.迅捷思維導圖 1.1 思維導圖    描述大概分類   --  迅捷思維導圖 1。2 流程圖    描述大體分類   --  迅捷思維導圖 2.startUML     https://blog.csdn.net/Granery/a

原创 Java四種線程池 newCachedThreadPool ,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor

Java四種線程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor 1、new Thread的弊端 1 2 3 4

原创 CamX debug

camX  平臺通用 打印hal log adb shell setprop persist.vendor.camera.logInfoMask 0x8000000 adb shell setprop persist.vendor.cam

原创 Camera green picture

1. malloc error  關閉HDR ,在黑暗的環境下,連續拍照,出現綠圖 E Metadata2/Entry: itemAt(531):Get data error , tag ffffffff, mContentPtr 0x

原创 camera 網格線 function

camera.xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/camera_root_frame"

原创 camera 線程池

// CRASH: com.sec.android.app.camera (pid 4211) // Short Msg: java.lang.OutOfMemoryError // Long Msg: java.lang.OutOf

原创 Java 對象 與 C 對象的綁定和引用

android 中很多這種機制, 類似 Surface的引用 一、 java 對象持有C 對象的引用 public class Java { public final long nativeObj; //這個地址又可以傳到jni

原创 OpenGL ES 2.0 - Matrix. setLookAtM/.frustumM/.multiplyMM

最近學習了 opengl es, 要顯示3D 的效果,主要對座標系和位置向量有一個概念. Matrix.frustumM    透視投影 target Matrix.setLookAtM  相機位置 camera Matrix.multi

原创 Android Surface 4 SurfaceFlinger

前面看到了 Surface 的創建流程, 而最終到了 SurfaceFlinger 去創建Layer 最終是由  SurfaceFlinger 合成顯示 SurfaceFlinger 進程是由 init 進程創建的,運行在獨立的 Surf

原创 Android surface 2 創建流程

Surface的創建涉及三個部分: App 進程 App需要將自己的內容顯示在屏幕上,所以App負責發起Surface創建請求,創建好Surface,在canvas上設置需要顯示的信息, 保存到Surface裏的buffer裏,最後由Su

原创 Android surface 3 繪製 (的時機 java層)

 //----------------------------------流程1.2  繪製 ----------------------------------     private void performDraw() {

原创 Android surface 1 源碼目錄

  Surface SurfaceControl    surface控制 SurfaceSession    surface 會話類,維護 android/frameworks/base/core/java/android/view/S

原创 camera 分層

問題一、  分層 操作步驟:  進入 camera 後置 full    前置設置 4:3 或 1:1              退出相機 再進入相機,前後攝切換,隨機切換分辨率 現象:      "小分辨率預覽界面" 下面 出現  "大

原创 touch af_ae && long press af_ae lock

  一、  高通代碼   1.1  點擊操作入口 @Override public void onSingleTapUp(View view, int x, int y) { if (mPaused || !mCamerasOpened

原创 java.nio.ByteBuffer的flip、rewind和compact幾個方法的區分使用

java.nio.ByteBuffer Capacity 緩衝區最大容量  Limit 當前最大使用量,或者說是有效數據的EOF位置。 Position 指向當前位置的指針 假設一個緩衝區容量是10,開始指針指向0,即position=0