⑴ android 底層語言是什麼如題 謝謝了
基本的開發是用的java語言,但一些底層功能可能需要JNDI連接C或C++(linux下的)來寫
⑵ 安卓底層開發能做什麼
android底層?
你是指的是android平台代碼開發還是希望對android的腳本,版本控制方面的開發?
如果是android平台代碼的開發:
到google網站下載source code,一點點開始研究底層的代碼 Java基礎就可以
如果想腳本,版本控制或者android底層的C代碼的開發:
那就需要你對C很精通對android的源碼結構非常了解,而且JNI等等技術你都要明白
⑶ 如何入手學習android 底層開發
android 底層開發學習:
一、基於Android的CPU+GPU的異構編程開發,目前主要有以下幾種平台:
1. OpenCL
在桌面系統和大規模並行計算領域被普遍使用的一種底層API。最近一段時間,主流的晶元廠商的旗艦或准旗艦晶元都開始支持OpenCL1.1或者1.2標准,包括高通,三星, 聯發科,Rockchip等廠商的晶元,都可以找到OpenCL的支持。
2. CUDA
目前只有NVIDIA自己出的基於Tegra K1晶元的設備(NVIDIA Shield)支持CUDA,所以支持的面比較窄。
3. RenderScript (RS)
Google力推的異構編程,宗旨是由平台幫你選擇運行的處理器,也就是說你是不知道你的程序跑在CPU還是GPU上的,這是由系統的驅動來決定的。想法是美好的,可現實是開發者並不買RS的帳, 大家覺得RS的性能不可控,靈活性太差,其文檔之缺乏也被人詬病;此外,晶元廠商對於RS的優化都還普遍處於比較低階的水平,這些都導致了RS在實際應用中很少被用到。
二、由於OpenCL的普及程度,以下部分只針對OpenCL展開。
目前支持OpenCL的設備和晶元
1. 支持OpenCL的GPU
高通幾乎全系的GPU, 包括但不限於以下GPU (Adreno 305, 320, 330, 405, 420, 430, 530 ...)
ARM Mali的6系和7系GPU, 比如T628, T760
2014年以來較新的Imagination PowerVR GPU,比如G6430
2. 支持OpenCL的晶元。以下是一個很粗略地列舉了主要的支持OpenCL的晶元。
高通8064, 8974(驍龍800,801), 8084(驍龍805), 8994(驍龍810)等
三星 Exynos獵戶座 5420, 5433 (內置ARM Mali GPU)
聯發科 MT6752 (內置ARM Mali T760 GPU)
瑞芯微 RK3288 (內置ARM Mali GPU)
3. 支持OpenCL的手機和平板。 這個就數不勝數了,下面只隨手給出幾個例子以供參考。(注意:Google Nexus系列的手機或平板,雖然硬體上支持OpenCL,但因為刪掉了OpenCL的驅動程序,所以基本都不支持OpenCL;值得注意的是,據國外blog上報道,可以將相應的OpenCL驅動推送回設備以重新開啟OpenCL的支持, 詳見maxlv.net 的頁面)
三星 Galaxy S4, S5, S6, Note 3, Note 4
LG G2, G3, G4
HTC One M7, M8, M9
小米使用高通晶元的手機和平板
魅族M1 Note
台積電P90HD
等等等等。。。。
如果不確定手頭的設備是否支持OpenCL, 可以使用OpenCL-Z Android進行檢測,這款軟體可以顯示詳細的OpenCL的設備信息,同時運行micro-benchmark檢測設備的計算能力。
三、需要掌握的知識:
1. 簡單的GPU基本知識
2. OpenCL並行程序設計
3. Android NDK知識
4. Android JNI介面的編寫
5. 簡單的Android程序開發知識
四、開發的步驟(這里只是步驟的精簡版本,只闡述操作,不進行解釋):
1. 編寫OpenCL的C/C++程序實現GPU的核心計算代碼
2. 用Android NDK編譯之前寫的C/C++代碼。這一階段可以在純C/C++環境下工作,可以編寫main函數測試實現的功能,用NDK將代碼編譯為可執行的代碼(BUILD_EXECUTABLE), 然後用ADB將可執行程序推送到設備上運行。運行可執行程序要求設備具有root許可權,如果沒有root許可權,可以通過Native Program Launcher (AndroidNativeLauncher · GitHub,可能需要翻牆) 這一工具在設備上執行二進制代碼。
3. 上一階段測試結束,功能基本正常。開始編寫JNI介面。
4. 開始編寫Android應用程序,使用JNI封裝native函數。編譯C/C++代碼成動態鏈接庫。
5. 在Android程序里,以靜態方式載入上一步編譯的動態鏈接庫。
6. 在需要的地方(比如點擊按鈕事件),調用相應的native函數,即可實現相應的功能。
⑷ 安卓底層開發 linux
驅動都是使用C寫的,所以你想搞底層驅動開發,你要有一定的C基礎。對於開發驅動來說,Windows系統是非常不適合的,特別是Android本身就是Linux內核,所以你也要掌握Linux操作系統,比如腳本的編寫,C代碼的編譯等等。
請採納答案,支持我一下。
⑸ 怎樣學習android底層開發
Android底層開發技術實戰詳解——內核、移植和驅動
Android與Linux的關系
Linux Kernel的版權是GPL(General Public License),它要求對源代碼的任何修改都必須開源。
Android的Kernel採用的GPL,但Android採用ASL(Apache Software License),不必開源。
Google特意修改了Kernel,將某些功能轉移到上層HAL(Hardware Abstraction Layer)中。
因此,從2010年2月,即Linux2.6.33起,Android Kernel已經從Linux Kernel中刪除。
三種內核
1、Goldfish,它是由Google提供的一種虛擬的ARM處理器,在Android的模擬環境中使用。
2、MSM(Mobile Station Modem),它是由美國高通(Qualcomm)公司提供的ARM處理器晶元組。
3、OMAP(Open Multimedia Application Platform),它是由美國德州儀器(Texas Instruments,簡稱TI)公司提供。
三類驅動程序
1、字元設備
2、塊設備
3、網路設備
兩種驅動類型
1、專用驅動,非Linux標准,純軟體
2、設備驅動
⑹ 安卓底層開發前景怎麼樣
關於安卓開發:Android早期由「Android之父」之稱的Andy Rubin創辦,Google於2005年並購了成立僅22個月的高科技企業Android,展開了簡訊、手機檢索、定位等業務,基於Linux的通用平台進入了開發。
從現在安卓手機和iOS手機的銷量來看,占據了市場的絕大部分,在結束了塞班時代,在winphone還沒有被問世之前,安卓可以說就已經很火了。安卓開發培訓幾乎是一時間火速興起的產業。
目前IT行業中的,Android應用軟體,Android手機游戲,發展迅速,據報導安卓系統佔中國智能手機90%的市場份額,面對這么大的市場,Android開發市場受到投資者,創業者的關注,相關的新興公司很多。但是目前從事這項技術開發的人員很少,所以目前人才需求量比較大,好就業。
Andriod移動開發工程師就業行情之人才需求:
1、硬體驅動方向;2、軟體應用。就目前人才需求來看,偏向軟體應用崗位的需求更多,包括手機游戲、手機終端應用軟體和其他手機應用軟體的開發,具某求職網站數據顯示目前企業對這類應用軟體的Android開發人才占總需求的70%左右。
據不完全統計:從2013年開始熱招的Android技術相關崗位約有5120個,而一個月內的有效崗位量在3070個。主要熱招職位包括Android開發工程師、Android軟體工程師、Android應用開發工程師、Android手機游戲開發、Android系統軟體開發、Android程序員、Android游戲應用版本管理、人機交互分析工程師、Android中間層開發工程師等。
人才供應:由於目前Android技術較新,無論是相關書籍、培訓還是大學教育,都處於初級階段,因此Android人才短期將供不應求。
從長期來看,隨著各種移動應用和手機游戲等內容需求日益增加,也將激勵大中小型手機應用開發商加大對Android應用的開發力度,因此andriod移動開發工程師的就業前景也非常廣泛。
PS
★月薪:
1年經驗:大概7000~8000;
3年經驗:一般10K以上,不同公司不同行業,相差比較大;
目前國內的Android開發還是主要以應用開發為主,主要分成3類:為企業開發應用、開發通用應用以及游戲開發
Android的開發採用了Java語言,有一些編程語言(如C/C++/Java等)訓練的,都可以考慮學習Android應用開發。希望從事Android游戲開發,最好能在高數、離散數學甚至計算機圖形學等方面有比較扎實的基礎。後續想往底層開發如系統移植、驅動開發等方向發展,應更好地理解Android 應用架構體系,具備一定的操作系統知識。
回答不容易,希望能幫到您,滿意請幫忙採納一下,謝謝
⑺ 一個Android偏底層開發人員,對發展很迷茫,我該怎麼發展
個人認為做BSP一般分成兩種:bring up和porting。一般做產品的基本上都沒有機會做bring up工作。做bring up一般都是方案商或者晶元廠商。
以下分析下做porting讓人迷茫的原因:
做porting的確會讓人迷茫,因為在這個過程中我們需要改動的代碼其實不多,面臨整個產品的BSP porting工作時,我們需要熟悉kernel / android HAL / android framework各個子系統,但子系統太多導致我們可能沒法精通所有的子系統。譬如 kernel中的usb 的枚舉過程、pcie設備的枚舉過程、ALSA中如何加入新的 audio codec驅動、V4L2中如何添加新的camera sensor的驅動等等。簡單說,android體系龐大,BSP部分涉及3種編程語言,多個子系統,全部精通對個人而言不太現實,所以總會感覺自己什麼都不會,但什麼又都知道一點。
想要破除這個魔咒,「普遍撒網,重點捉魚」的戰術會湊效。譬如我做過一年硬體,做了三年的kernel driver porting,做了一年android kernel/HAL/Framework開發維護,體系跨度不算大,但東西都比較繁雜,技術含量並不高。所以我得規劃是重點學習 audio/video部分,以後做多媒體部分的工作。
以上說的可能會比較亂,想到哪寫到哪,希望對你有所幫助。其實我也比較迷茫,人生不就是這樣么,迷茫著,然後一輩子就過去了^v^
⑻ android的底層是基於什麼系統
安卓系統底層是基於Linux的,是基於C和C++的, 上層應用大部分是基於「JAVA"的。
也就是說系統是C/C++編寫的,系統外部應用是Java的。
你是指的是android平台代碼開發還是希望對android的腳本,版本控制方面的開發,如果是android平台代碼的開發。
到google網站下載source code,一點點開始研究底層的代碼 Java基礎就可以如果想腳本,版本控制或者android底層的C代碼的開發:那就需要你對C很精通對android的源碼結構非常了解,而且JNI等等技術你都要明白。
⑼ Android應用開發和底層開發哪個更有前途
不是很清楚你說的前途是什麼?多賺錢 or 技術達人 or 兩個平台的發展前景? 1、很大程度,吸金看產品不看平台,多數產品會每個平台都做,好產品才能賺錢。 2、技術上講, iOS基於unix, android基於linux, 都是基於POSIX標準的系統,很多底層功能都是類似的。但iOS封閉,限制了很多功能,android是開放的,自由發揮程度很大。應用開發上, iOS的SDK封裝得不錯,用objective-c開發還是蠻方便的,android用java開發難度也不大,但設備多、系統版本多、商城多,經常一個軟體得放出n多版本的安裝包。應該說做android可以玩得更深。 3、哪個平台以後會更大眾、更流行: 我覺得android 。 現在iphone系統的性能、用戶體驗都比android好很多,但隨著設備發展,android的這些問題會好起來,而且android系統開源、做的廠家多,以後android手機的市場會更大,android的軟體也就更賺錢了。
⑽ android底層開發Or Ios開發
Android和iOS還是有很大差別。
的iOS蘋果的OSX,UNIX系統,OSX已有近10年的歷史,從內核底層軟體架構逐步發展。 iOS的ObjectivC這種古老的語言做開發。 Android是基於Linux操作系統,谷歌參與在嚴格的意義上說,Android是一個Linux系統,它不會有Linux XWIN,glibc中,缺乏一套完整的標準的Linux程序。大部分Android應用程序是用Java開發,運行在Dalvik虛擬機(一小部分的NDK)。谷歌在底層了很多東西。的Andr??oid視為一個新的操作系統。
? Android的Java,容易上手了很多良好的JAVA開發效率會更高
Lib的祝福嗎? IOS虛擬機,性能當然更好,與谷歌的改善越來越小
的區別嗎? iOS開發框架基本上和MAC上GM,相同的知識,手機的發展,可以同時開發Mac應用程序,Android有沒有這樣的優勢
iOS設備緊密地集成在一起。的硬體和軟體公司所有。但是Android不這樣做,通常情況下:谷歌發布的源代碼。晶元製造商需要1-3個月的時間做自己的晶元解決方案,手機製造商購買的晶元製造商進行自己的集成,定製工作,有時還需要為運營商定製的程序和代碼。