全志A31S(android 4 2 4 4)截圖

2021-07-03 15:25:27 字數 1631 閱讀 7797

轉眼畢業也快三年了。最近找不到方向,有點迷茫了。主要是找不到什麼事情去做,可能因為自己不是乙個願意主動去學習的人。

閒著也是沒事,就把自己接的一些私活的原始碼分享出來寫寫blog吧,算是給自己一點活做吧。

言歸正傳,最近在做的乙個私活中某乙個功能是廣告機(android,已經root了)截圖然後傳給其他android/ios裝置。因為傳輸對時間要求不是太高,且適配與android和ios。所以設計的基本思路是: 截圖->轉化成png->傳輸給android/ios;

手裡的裝置是全志a31s(android 4.2)的機頂盒,截圖轉化為png的作都是在機頂盒上。網上關於截圖的**和分析太多太多,很多也給了原始碼和分析思路。我這也是沿著前面大牛的道路走下去的,**也是抄的他們。大家找到的所有關於後台截圖的思路應該就兩個:乙個是呼叫android 4.0以上系統的隱藏api :screenshot,乙個是呼叫framebuffer中的資料。這篇文章就先給出呼叫隱藏api的思路和**:

後台service提供截圖方法,當機頂盒收到某條訊息(類似與廣播)呼叫該service方法。

public class capturepictureservice extends service

@override

public void oncreate()

@override

public int onstartcommand(intent intent, int flags, int startid)

public boolean takescreenshot(string imagepath)

bitmap mscreenbitmap;

windowmanager mwindowmanager;

displaymetrics mdisplaymetrics;

display mdisplay;

mwindowmanager = (windowmanager) mcontext

.getsystemservice(context.window_service);

mdisplay = mwindowmanager.getdefaultdisplay();

mdisplaymetrics = new displaymetrics();

mdisplay.getrealmetrics(mdisplaymetrics);

float dims = ;

mscreenbitmap = su***ce.screenshot((int) dims[0], (int) dims[1]);

if (mscreenbitmap == null)

try catch (exception e)

return true;}}

上面需要注意的是,需要許可權,且su***ce.screenshot這個api是android隱藏api,所以大家在eclipse中是會報錯的,該**需要在android原始碼中編譯。

在全志提供的原始碼中4.2和4.4的該介面也是不一樣的,4.2是su***ce.screenshot((int) dims[0], (int) dims[1]); 4.4是su***cecontrol.screenshot((int) dims[0], (int) dims[1]);(需要用到import android.view.su***cecontrol;)

全志啟動流程

參考文獻 全志啟動流程可分為5部 bootrom spl uboot kernel rootfilesystem 1 spl背景 spl是乙個mini版本的uboot,類似於mtk平台的preloader,用於載入完整的uboot程式到sdrom,並通過uboot來載入核心啟動系統。spl程式流程如...

全志 ADC驅動

adc 驅動 1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 include 10 include 11 include 12 include 13 include 14 includ...

5 全志 實地調研 全志科技 遇見SoC晶元龍頭

2019年12月,遇見 全志科技300458。這是片最好的時代,上至頂層,下至草根,都與國內晶元確認了眼神。而我們的任務就是尋找晶元各個細分領域的龍頭。無論按cpu gpu fpga nor 模擬晶元來分,還是按屏下指紋 射頻pa cis等來分,市場都挖出了大牛,甚至有的達到千億市值,極大開啟了資本...