android開發c
① 關於 Android c語言 開發
剛好最近我正在學習android可以幫到你。
1.java開發是Android的應用部分
2.C/C++語言開發是Android核心的部分
Android的C語言其實是指的Android底層的Linux內核開發,剛好你是學習Linux C語言的這樣就有用武之地。Android的底層是由Linux開發的,並建立在Linux之上的JAVA虛擬機來實現的。
所以要學習Android C語言的開發,建議看看《Android系統原理及開發要點詳解》著本書講的內容都是底層的內容,一定要買。不過JAVA語言的部分也一定要看,因為C語言做的驅動最後還是需要被JAVA虛擬機調用。
另外要做AndroidC語言開發還需要注意一下幾點:
1.需要購買開發板來學習,或者開源的手機,這樣可以直觀的了解驅動的運作模式和有效調試
2.需要下載android源代碼,因為Android SDK開發是不會用到C語言的
3.android的NDK開發其實也是C/C++語言調用一些函數來實現,建議也看
4.最後這個網址可以去看,多是講底層資料的:http://bbs.starandroid.com/showtopic.aspx?topicid=10712&page=end
建議:
1.JAVA還是要看的
2.建議往Android底層硬體開發走
② 為什麼Android開發使用Java而不是C++
一、C++是與cpu相關的本地代碼,也就是說每種機型都要提供相應的編譯器,而且每個應用都要分別編譯成適應不同機型的版本 而Java只要開發商提供針對特定硬體平台的JVM,你的應用程序代碼只需一次編譯就可以運行在所有android機上了。所以對於android這樣的系統,必然要以Java為程序語言的,否則結果是無法想像的。
二、Java跨平台,入門簡單,而學習和精通C++的成本實在比JAVA要高太多了。java擁有世界上最大的開發群體,有最大的開源社區的技術支持,這樣它就可以吸引最大量的開發者團隊或者公司,提供更多更強優質的產品,而優質的產品和人氣,是吸引最終用戶的法寶。 其實這也就體現了,為什麼開源軟體是軟體產業的一次革命了。
三、Google採用Java虛擬機的另一個很關鍵的原因,就是能使手機開發廠商擺脫Linux的GPL協議的束縛;Google通過Java虛擬機在Linux 內核和應用層之間做了隔離,因此,開源的只是內核和Java虛擬機,而廠商採用Java編寫的驅動和應用則不需要開源,這樣,既維護了各廠商的利益,又保證了各種android應用在各款手機的跨平台應用。
四、說Java效率低下的朋友一定沒有深入理解過JVM的實現。現在的嵌入式CPU大多都集成了Java協處理,支持JVM指令集,能直接運行微碼,不再是以前的「解釋執行了」,效率上已經非常接近於C。Android的GUI框架是基於Native C底層的一套自有框架,基本上所有視頻加速功能都是由C/C++實現,GUI效率一點不打折扣。
③ android開發用eclipse怎麼調用c代碼
在一些Android應用的開發中,需要通過JNI和 Android NDK工具實現JAVA和C/C++之間的相互調用。
Java Native Interface (JNI)標準是java平台的一部分,它允許Java代碼和其他語言寫的代碼進行交互。JNI是本地編程介面,它使得在 Java 虛擬機 (VM)內部運行的 Java代碼能夠與用其它編程語言(如 C、C++和匯編語言)編寫的應用程序和庫進行交互操作。
由於Android的應用層的類都是以Java寫的,這些Java類編譯為Dex型式的Bytecode之後,必須靠Dalvik虛擬機(VM: Virtual Machine)來執行。在執行Java類的過程中,如果Java類需要與C組件溝通時,VM就會去載入C組件,然後讓Java的函數順利地調用到C組件的函數。此時,VM扮演著橋梁的角色,讓Java與C組件能通過標準的JNI介面而相互溝通。
在實際應用中這兩者之間的調用關系可以歸納為以下四種方式:
1. 在應用的JAVA代碼中調用NDK中C/C++實現的函數。
2. 在NDK開發中的C/C++代碼調用應用中JAVA類的靜態函數。
3. 在NDK開發中的C/C++代碼調用應用中JAVA類當前傳入NDK中的實例的函數。
4. 在NDK開發中的C/C++代碼調用應用中JAVA類新建實例的函數。
④ 做安卓APP開發,為什麼還要學C語言
學習C語言可以為學習C++、Java、C#奠定基礎。C++、Java、C# 都源自C語言,C語言大部分的語法、知識都被移植到 C++、Java 和 C# 中了。
所以學習C語言有助於 C++、Java 和 C# 的學習。對於學習編程的人來說,有深厚的C語言功底是極其重要的。
只要C語言的功底深厚,那麼學習其他語言都會很簡單。但深厚的功底不是一天兩天造就的,需要長時間的積累和沉澱。
(4)android開發c擴展閱讀
簡介
C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
特有特點
1、C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
2、C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3、不同的變數類型可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
5、部份的變數類型可以轉換,例如整型和字元型變數。
⑤ 安卓開發需要什麼需要c語言和java語言,用哪個
安卓開發需要Java語言。
android是基於java開發的。可以說開發人員的Java水平將直接決定其Android水平。
因為Android的應用的開發語言用的是Java語言,並且在Android中也用到了Java核心類庫的大量的類,因此,在學習Android開發之前,可以先把Java基本語法和Java SE的基礎類庫好好學習一下Android應用序開發是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只是機械的照抄別人的代碼,是沒有任何意義的。
現階段從事Android開發的人員主要包括兩類人群,一類是Java開發人員通過自學轉型到Android領域;另一類則是通過在一些Android培訓機構進行一段時間的集中培訓而進入Android領域。
⑥ 基於android平台開發上用C語言可以開發什麼程序
android上現在有兩個方向,一個是基於SDK的開發,主要是
用JAVA,另外一個就是NDK的開發,主要語言就是C、C++,C,C++可以再在android中做第三方的開發,人才急缺,主要是將一些功能本地化。
⑦ 基於android平台開發上用C語言可以開發什麼程序
android上現在有兩個方向,一個是基於SDK的開發,主要是 用JAVA,另外一個就是NDK的開發,主要語言就是C、C++,C,C++可以再在android中做第三方的開發,人才急缺,主要是將一些功能本地化。
⑧ android是否能用c/c++開發完整應用程序
不能開發完整的程序,但你可以把邏輯演算法封裝在c/c++開發的.so庫文件中,然後在java層使用jni進行調用。
要使用c/c++需要安裝eclipse+cdt+ndk
但你仍然需要java開發環境eclipse+adt+sdk
⑨ Android能用純C/C++開發嗎
目前截止到2.3系統來看,最終安裝的文件仍然是apk格式,界面和系統大多數功能均使用Java開發,但是稍微高端的應用考慮到性能和安全性使用
C/C++是必要的,C/C++最終編譯的so文件就相當於Windows下的dll動態庫,需要一個宿主去載入調用,我們通過Java的JNI去調用這些本地方法,目前從NDK的版本來看Google不斷增強和開放C++在Android開發的用處,以保證和iPhone這種使用本地語言開發出來的軟體體驗度不能差距太大。
⑩ Android中可以用C直接開發嗎不用JAVA,JNI也不行,不想被反編譯
可以的,底層原本就是C的,可以直接跨過JAVA層,但是挺麻煩
可以不用JNI,直接從動態連接庫啟動,但是NDK還是要用的,編譯方便