<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于A(yíng)ndroid的機頂盒CAS系統的開(kāi)發(fā)

基于A(yíng)ndroid的機頂盒CAS系統的開(kāi)發(fā)

作者: 時(shí)間:2012-08-21 來(lái)源:網(wǎng)絡(luò ) 收藏

3.1 搭建的NDK環(huán)境
由于是在Windows下進(jìn)行,所以要在Windows下模擬Linux的環(huán)境,需要下載cygwin工具,下載地址為http://www.cygw in.com/setup.exe。安裝方法請參考相關(guān)文檔,這里就不贅述了。同樣也需要的NDK套件,下載地址為http://developer.a(chǎn)n droid.com/sdk/ndk/index.html;可以選擇最新的版本下載,下載完畢,直接解壓到同一路徑下。然后在cygwin的安裝目錄home/Adm inistrator下的./bash_profile文件添加NDK的路徑,就可以使用NDK下的ndk-build命令了,進(jìn)入samples/hello-jni。在cygwin中調用ndk-build,如果出現如圖7所示的結果,則NDK的環(huán)境已經(jīng)搭建成功。

本文引用地址:http://dyxdggzs.com/article/154097.htm

a.JPG


3.2 編寫(xiě)的makefile
筆者使用的是android-ndk-r7b版本,也是目前最新版本,其交叉編譯器位于其toolchains/arm-linux-an-droideabi-4.4.3/pre built/windows/arm-linux-android/bin中,庫的頭文件位于/platforms/android-xx/arch-arm/usr/include中,庫位于platform /android-xx/arch-arm/usr/lib中。知道了編譯器和C庫的頭文件,就可以容易地編寫(xiě)出 makefile。在編寫(xiě)makefile時(shí)需要注意,若用到了posix的pthread庫,則需要添加“LDFLAGS+=-lpthread”,否則在執行鏈接的時(shí)候會(huì )出現錯誤。編譯完成之后如圖8所示。
3.3 實(shí)現的JNI接口函數
因為提供給外部使用的API達20多個(gè),這里以CASTB_GetVersion()函數為例,其他都是如此實(shí)現。新建一個(gè)文件夾,命名為STBCA,在文件下建立兩個(gè)文件夾分別命名為JNI和SRC。JNI存放為CAS的JNI本地API,源文件為castb_api_jni.c;SRC存放的是上層JAVA應用程序,根據JNI標準則需把CASTB_GetVersion()定義為“Java_com_jpf_stbca_STBCA_CASTB_GetVersion();”。只要調用3.2小節的中liBCAS.a(chǎn)庫中的源函數就實(shí)現了對原函數的包裝,在同一目錄下添加android.mk,內容如下所示:
LOCAL PATH=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE=casjni
LOCAL_SRC FILES=castb_api_jni.c
LOCAL_LDLIBS+=-lcas\
-lpthread
include $(BUILD_SHARED LIBRARY)
通過(guò)3.1小節的步驟就可以生成cas_jni.so庫,上層如果曼調用cas_jni.so庫中的函數只要在JAVA文件中聲明public native CASTB _GetVersion()函數,且使用“static{system.loadlibrary(“cas_jni”);}”把動(dòng)態(tài)庫加載到連接器中,就完成了全部的設計。通過(guò)實(shí)踐,負責上層軟件編寫(xiě)的同時(shí)能夠無(wú)縫地實(shí)現CAS系統API的調用。

結語(yǔ)
本文詳細闡述了CAS子系統的開(kāi)發(fā)過(guò)程和系統移植。在A(yíng)ndroid的開(kāi)發(fā)過(guò)程中,使用的是華為的H3716C平臺,筆者承擔了CAS系統和PSI/SI節目表解析的開(kāi)發(fā)與移植。使用此CAS子系統播放加密節目,持續穩定地播放一周而且沒(méi)有出現馬賽克或卡現象,說(shuō)明此CAS子系統比較穩定。但CAS是一套功能完整的獨立系統,而筆者只是重點(diǎn)探討解密的過(guò)程,許多其他功能未有涉及,若想深入了解CAS系統,請參考CAS系統標準。


上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>