成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

如何建立windows下基于C語言的android開發(fā)?

網(wǎng)友解答: 回答這個問題之前,我先來帶大家看幾個名詞概念。什么是SDK?SDK(software development kit),顧名思義,也就是軟件開發(fā)工具包的意思!她包括特定軟件包

網(wǎng)友解答:

回答這個問題之前,我先來帶大家看幾個名詞概念。

什么是SDK?

SDK(software development kit),顧名思義,也就是軟件開發(fā)工具包的意思!她包括特定軟件包、軟件框架、硬件平臺、以及操作系統(tǒng)等開發(fā)應(yīng)用軟件的開發(fā)工具集合。那么Android SDK,就是Android開發(fā)者工具包的意思。

什么是JNI?

JNI的全稱是Java Native Interface (我們把它叫做Java本地編程接口),它的存在是方便Java代碼和其他語言寫的代碼進(jìn)行交互。

什么是NDK?

NDK(native development kit),我們姑且稱之為本地或者說原生開發(fā)工具包,因?yàn)锳ndroid本身是基于Linux的,所以從誕生一開始就是支持C/C++開發(fā)的,只是早期谷歌官方不支持,開發(fā)難度極大,直到有一天NDK出現(xiàn)。

那么為什么Android需要C語言進(jìn)行開發(fā)?到底windows下如何基于C語言進(jìn)行Android開發(fā)?可以純C開發(fā)嗎?

apk的java代碼很容易被反編譯,但是C/C++代碼反匯難度較大,而幾乎大部分的開源庫都是C/C++,并且C/C++的執(zhí)行效率是要遠(yuǎn)超過基于虛擬機(jī)的Java代碼的,并且可移植性能非常好,所以C/C++開發(fā)就應(yīng)用而生,Google很顯然也發(fā)現(xiàn)了這一點(diǎn)。

說了這么多你大概心里有底了,也就是說你只需要在安裝NDK就可以很好的在Windows上進(jìn)行Java開發(fā)了,它提供了一系列工具,幫助開發(fā)者快速開發(fā)C/C++動態(tài)庫,并能自動將so和java應(yīng)用一起打包成apk文件,還集成了交叉編譯器,可以說非常方便。

但是NDK所提供的API非常有限,C 標(biāo)準(zhǔn)庫、標(biāo)準(zhǔn)數(shù)學(xué)庫、壓縮庫、Log 庫等,這就是目前能支持的庫。

即使Google曾多次表示要進(jìn)一步完善NDK生態(tài),并且表明要加強(qiáng)NDK的調(diào)試能力,但是很顯然這并不是Android的主流開發(fā)方式,至少目前還是Java,但是未來會是什么語言?Go、Python、kotlin?我們不得而知,畢竟現(xiàn)在很多App都用JavaScript做Web App了。

所以原生C是難度很大了,不過混合開發(fā)還是比較常見的。

標(biāo)簽: