欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Wireshark工具介紹

概述

智能手機(jī)的開(kāi)機(jī)畫(huà)面一般是由一幀靜態(tài)圖片或者一組靜態(tài)圖片組成。一組動(dòng)態(tài)圖片可以在代碼中實(shí)現(xiàn)開(kāi)機(jī)動(dòng)畫(huà)的效果。為了豐富開(kāi)機(jī)界面的形式,百變開(kāi)機(jī)畫(huà)面補(bǔ)充了這樣的需求。

成都創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站營(yíng)銷推廣、網(wǎng)站開(kāi)發(fā)設(shè)計(jì),對(duì)服務(wù)戶外休閑椅等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

可以實(shí)現(xiàn)開(kāi)機(jī)播放自定義視頻,又可以兼容開(kāi)機(jī)播放靜態(tài)圖片的功能。

該功能主要由兩個(gè)bin服務(wù)實(shí)現(xiàn)

Counter服務(wù)是屬于系統(tǒng)bin服務(wù),位置在/system/bin/counter,擁有系統(tǒng)權(quán)限,可以讀寫(xiě)系統(tǒng)file,實(shí)現(xiàn)開(kāi)機(jī)畫(huà)面的倒計(jì)時(shí)功能與開(kāi)機(jī)靜態(tài)圖片的展示。

Play服務(wù)是屬于系統(tǒng)bin服務(wù),位置在/system/bin/counter,擁有系統(tǒng)權(quán)限,可以讀寫(xiě)系統(tǒng)file,實(shí)現(xiàn)開(kāi)機(jī)自定義視頻功能,可以支持mp4,ts等常見(jiàn)視頻格式

類Counte實(shí)現(xiàn)

counter.cpp是一個(gè)顯性的倒計(jì)時(shí)提示,在用戶自定義的開(kāi)機(jī)視頻和開(kāi)機(jī)畫(huà)面上顯示剩余秒數(shù)提示用戶,同時(shí)如果有靜態(tài)圖片,背景顯示圖片。

1.??????Counter是系統(tǒng)bin服務(wù),通過(guò)createSurface創(chuàng)建實(shí)例作為圖層:

status_t Counter::readyToRun() {

?

??? //獲取內(nèi)建顯示設(shè)備

??? sp<IBinder> dtoken(SurfaceComposerClient::getBuiltInDisplay(

??????????? ISurfaceComposer::eDisplayIdMain));

DisplayInfo dinfo;

//獲取默認(rèn)的Display對(duì)象參數(shù)

??? status_t status = SurfaceComposerClient::getDisplayInfo(dtoken, &dinfo);

??? if (status)

??????? return -1;

??? //創(chuàng)建native SurfaceView

??? sp<SurfaceControl> control = session()->createSurface(String8("Counter"),

??????????? dinfo.w, dinfo.h, PIXEL_FORMAT_RGBA_8888, 0);

?

??? //操作SurfaceComposeClient,并設(shè)置圖層優(yōu)先級(jí)

??? SurfaceComposerClient::openGlobalTransaction();

??? control->setLayer(0x40000002);

??? SurfaceComposerClient::closeGlobalTransaction();

??? sp<Surface> s = control->getSurface();

?

??? //初始化 opengl 和 egl引擎參數(shù)

??? const EGLint attribs[] = {

??????????? EGL_RED_SIZE,?? 8,

??????????? EGL_GREEN_SIZE, 8,

??????????? EGL_BLUE_SIZE,? 8,

??????????? EGL_ALPHA_SIZE, 8,

??????????? EGL_DEPTH_SIZE, 0,

???????????EGL_NONE

};

?

2.??????加載系統(tǒng)默認(rèn)UI資源,通過(guò)decodeImage來(lái)解碼圖片,并顯示在SurfaceLayer之上。

status_t Counter::initTexture(Texture* texture, AssetManager& assets,

???????const char* name) {

//聲明bitmap對(duì)象

SkBitmap bitmap;

//通過(guò)sk庫(kù)函數(shù)對(duì)圖片進(jìn)行decode

SkImageDecoder::DecodeMemory(asset->getBuffer(false), asset->getLength(),

??????????? &bitmap, kUnknown_SkColorType, SkImageDecoder::kDecodePixels_Mode);

?

//assert對(duì)象關(guān)閉,釋放資源

asset->close();

delete asset;

……

}

Wireshark工具介紹

類Player.cpp 實(shí)現(xiàn)

??? Player.cpp是檢查data目錄下是否有視頻文件,通過(guò)在開(kāi)機(jī)界面繪制surfaceview來(lái)播放視頻。

???在surfacelinger服務(wù)初始化完成后,啟動(dòng)Player服務(wù),創(chuàng)建surface示例并設(shè)置初始化view參數(shù)。這部分與初始化Counter過(guò)程一樣,需要?jiǎng)?chuàng)建Native Surface。

檢測(cè)目錄下視頻文件后,開(kāi)始調(diào)用MediaPlayer播放視頻,獲取視頻時(shí)長(zhǎng),格式,設(shè)置倒計(jì)時(shí)服務(wù),直到播放結(jié)束后進(jìn)入系統(tǒng)。

播放視頻相關(guān)代碼流程:

int main(int argc, char **argv) {

??? android::ProcessState::self()->startThreadPool();

?

??? //初始化SurfaceComposerClient

sp<SurfaceComposerClient> composerClient = new SurfaceComposerClient;

//獲取內(nèi)建顯示設(shè)備

??? sp<IBinder> display(SurfaceComposerClient::getBuiltInDisplay(

? ??????????ISurfaceComposer::eDisplayIdMain));

//創(chuàng)建Surface,初始化相關(guān)參數(shù)

??? sp<SurfaceControl> control =

??????? composerClient->createSurface(

??????????????? String8("A Surface"),

??????????????? displayWidth,

??????????????? displayHeight,

??????????????? PIXEL_FORMAT_RGB_565,

??????????????? 0);

???SurfaceComposerClient::closeGlobalTransaction();

//創(chuàng)建MediaPlayer實(shí)例

??? sp<IMediaPlayer> player =

??????? service->create(client, AUDIO_SESSION_ALLOCATE);

?

??? //設(shè)置播放源目標(biāo)

??? if (player != NULL && player->setDataSource(source) == NO_ERROR) {

??????

//設(shè)置播放Video的SurfaceTexture,用于顯示播放視頻流

player->setVideoSurfaceTexture(surface->getIGraphicBufferProducer());

//開(kāi)始播放文件

??????? player->start();

??????? client->waitForEOS();

?????? //播放停止

??????? player->stop();

??? } else {

?????? ?fprintf(stderr, "failed to instantiate player.\n");

}

//關(guān)閉composerClient

composerClient->dispose();

}

播放自定義視頻流程

Wireshark工具介紹

Counter與Player加載分析:

在init.rc中添加counter與advert服務(wù),user權(quán)限聲明為root,初次啟動(dòng)設(shè)置為disabled,需要主動(dòng)調(diào)起。

?

service connter /system/bin/counter

??? class core

? ??user root

??? group graphics audio

??? disabled

oneshot

?

service player /system/bin/player

??? class core

??? user root

??? group graphics audio

??? disabled

??? oneshot


本文題目:Wireshark工具介紹
網(wǎng)頁(yè)地址:http://aaarwkj.com/article46/jeeehg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、App設(shè)計(jì)、做網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
一卡二卡三卡四卡日韩| 粉嫩极品国产在线观看| 日本三卡=卡无人区| 中文字幕一区二区不卡顿| 九九在线免费视频蜜臀| 亚洲国产中文一区二区久久| 美女高潮呻吟免费观看久久久| 亚洲av网站一区二区三区| 久久久久久极精品久久久| 国产精品国产亚洲精品| 中文字幕人妻少妇美臀| 欧美人妻不卡一区二区久久| 亚洲av优选在线观看精品| 午夜福利精品在线观看| 亚洲精品国产精品乱码| 欧美特黄在线免费观看| 亚洲欧美日韩综合精品久久 | 亚洲黄色手机在线网站| 亚洲午夜福利啪啪啪| 亚洲桃色一区二区三区四区| 高清av在线国产成人精品自拍| 99亚洲综合一区二区三区| 欧美一日韩一级片免费看| 又黄又爽区一区二区三| 国产高清在线a视频大全| av黄色在线播放网页| 欧美日韩性生活视频在线| 亚洲成在人线天堂网站| 人妻久久久久久精品99| 中文字幕日韩一区二区| 色人阁在线精品免费视频| 日本 影院 一区 二区| 亚洲午夜激情免费试看| 亚洲精品午夜在线观看| 日韩成人免费观看视频| 日本九州不卡久久精品一区| 在线观看视频免费午夜| 可以免费看的日韩黄色| 亚洲欧美日韩性生活视频| 日本免费观看一区久久| 国产精品白嫩初高中害羞小美女|