原创 opengles(二)畫個三角型

首先我們需要知道opengles在屏幕上的座標,即中間座標點是x=0,y=0; x軸往右是正,往左是負,y軸往上是正,往下是負,且x, y的範圍都是-1到1;所以我們先定義座標數組,順序是逆時針方向: private static

原创 瞭解Web及網絡基礎

在面試中經常會問一些關於TCP/IP和HTTP/HTTPS相關的問題,在工作中雖然可以用okhttp之類的庫,但是必須要有基礎才能把庫的實現瞭解清楚,才能更好的處理網絡問題。所以在這系列的博文中記錄下學習的內容。 網絡通信是需要一

原创 返回結果的HTTP狀態碼

返回狀態碼第一位爲響應類別,後兩位無分類 200 表示從客戶端發來的請求在服務器被正常處理了; 204 表示從客戶端發來的請求在服務器被正常處理了,但在返回的響應報文中不含實體的主體部分;一般是在只需要客戶端往服務器端發送消息

原创 opengles(一) hello world

由於項目的要求,需要用到opengles,所以記錄下學習心得,在這裏先寫個opengles 2.0 for android 的 hello world 吧。 在android中需要使用GlSurfaceView來顯示opengle

原创 HTTP報文內的HTTP信息

報文的定義:用於HTTP協議的信息被稱爲HTTP報文; 報文由報文首部和報文主體構成,中間由 CR+LF(回車+換行) 分割開來; 由於報文的傳輸可以通過編碼提升傳輸效率,所以需要了解下報文(message)與實體(entit

原创 java 線程間的狀態轉換

線程間的狀態轉換: 新建(new):新創建了一個線程對象。 可運行(runnable):線程對象創建後,其他線程(比如main線程)調用了該對象的start()方法。該狀態的線程位於可運行線程池中,等待被線程調度選中,獲取cpu 的

原创 相機預覽使用幀緩存對象(FBO)

在原先的相機應用中對相機預覽處理是通過 OPENGL 直接讀取 OES Texture 數據進行濾鏡和顯示,這樣做的缺點是效率低, 由於 OES Texture 是外部紋理,直接讀取的話會增加了GPU取數據的時間,若進行一些運算密集的算法

原创 okHttp3 線程池

先來做一個簡單的網絡請求 Request request = new Request.Builder() .url("http://www.baidu.com") .buil

原创 android 渲染機制簡介

android 的渲染機制由以下部分組成: app (應用層繪製到緩存區) SurfaceFlinger (把緩存區數據渲染到屏幕) SharedClient (匿名共享內存) 其中 SurfaceFlinger 服務運行在And

原创 多進程導致 Application 多次執行的問題研究

在項目中我們有時會用到多進程,需要在 AndroidManifest 裏進行聲明 : <activity android:name=".RemoteActivity" and

原创 opengles(五) 紋理映射

爲了獲取更加真實、酷炫的3d物體,就需要用到紋理映射,就相當在前面我們畫的形狀前再貼一張皮膚上去,下面來看下怎麼實現。 首先我們需要知道一張紋理圖也是有自己的座標, 二維紋理的座標分爲 S 軸和 T 軸,左上角座標爲(0, 0)點,最大爲

原创 Camera app 分析(一)

由於參與了 Camera 項目的開發工作,所以需要對原項目代碼需要有個詳細的瞭解,在這裏先從app的入口做一個整體的分析,讓日後的新需求的添加和bug修復有一個比較好的基礎。 在這裏以高通修改的Camera app (Snapdragon

原创 Android觸摸事件傳遞機制

自定義view時經常會碰見觸摸事件傳遞方面的問題,所以需要清楚裏面的機制才能處理好相關的問題。 Android裏一次完整的事件傳遞主要有三個階段,分別是分發(dispatch)、攔截(intercept)和消費; 其中activity裏有

原创 Java中Volatile關鍵字詳解

Java中Volatile關鍵字詳解 閱讀目錄 一、基本概念 二、Volatile原理 一、基本概念 先補充一下概念:Java 內存模型中的可見性、原子性和有序性。 可見性:   可見性是一種複雜的屬性,因爲可見性中的錯誤總是會

原创 opengles 紋理對象&紋理單元

1在使用紋理的時候,有個疑問就是這些方法爲什麼就可以創建紋理並使用它們,這裏來探討下; 下面來看看一般使用二維紋理的步驟: // 生成紋理 int[] textureHandle = new int[1]; GLES20.glGenTe