轉眼畢業也快三年了。最近找不到方向,有點迷茫了。主要是找不到什麼事情去做,可能因為自己不是乙個願意主動去學習的人。
閒著也是沒事,就把自己接的一些私活的原始碼分享出來寫寫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等來分,市場都挖出了大牛,甚至有的達到千億市值,極大開啟了資本...