當前位置:首頁 » 編程軟體 » 手機編程底層

手機編程底層

發布時間: 2023-06-05 01:24:33

Ⅰ 關於學習安卓底層,懂得進

我幹了3年Android sdk開發,覺得到了瓶勁沒法更進一步,於是花了一年多點時間,大概摸到點門徑。根據前輩的經驗,Android底層完全入門需要兩年。

先說下我的入門過程:
第零步,下載源碼,我下的4.2的,框架層源碼10G,內核2G多,ctags給框架層建的標簽文件都有600M,當時讓我有點震撼,用的vim+ctags+cscope來閱讀,還算不錯,架構挺清晰的。

第一步,我找到了一本好書《Android的設計與實現 第一卷》它講了Android框架層的啟動,初始化,服務框架初始化,Binder,消息循環,PackageManagerService,ActivityManagerService。據作者說後面會出講UI子系統的第二卷,拭目以待。其實這本書看了幾十頁我就發現需要第二步的知識,否則看不下去,於是跳去第二步。

第二步,學習linux系統編程,在看《Android的設計與實現》的時候我發現,框架層的Native部分,全是Linux編程。為了掌握這部分知識,我花了4個月學習了《Linux系統編程手冊》(TLPI)這本1000多頁的書,我以前是搞WIndows文件系統這塊的,所以c語言還比較熟,TLPI的習題很有意思,量也比較大,堅持下來還是收獲很多。

第三步,花了4個月學習了一些Linux內核的知識,看了LKD,PLKA看了一半多。越學越沒底,覺得不懂得越來越多,不過這個也正常,只有靠慢慢磨,估計以後要不斷的磨這塊。

第四步,回頭看Android源碼,這次一口氣看完了《Android的設計與實現 第一卷》,終於對框架層有了譜。同時真的數次把我看暈,前面看Linux內核源碼都沒這么暈,不斷在java層和Native層之間跳有點磨腦漿。其中我又覺得Java的基礎沒有打太牢,回去補了一個月的《Core Java》第八版。但是這書沒有涉及UI子系統,於是又看了《Android內核剖析》

第五步,《Android內核剖析》(這本書實際上是講框架層的,作者也是個搞嵌入式的,所以他在寫框架層的時候文筆不太好,很羅嗦,不過還是有很多看點,到他後來寫做ROM,玩開發板時估計是說到了他的本行,一下子遛起來了看得出還是挺有水平的,這本書知識有點舊畢竟講的是2.3很多代碼已經過時,但是作者很多點子很有參考價值)這本書講UI子系統和按鍵/觸摸消息處理系統還是很有分量的,尤其13章View繪制那裡,結合源碼研究很有收獲。而後面他講編譯框架和ROM相關的東西都是挺寶貴的資料。

第六步,為了再補一下其他諸如電源管理模塊等子系統的知識看了,《深入理解android》系列,個人認為這個系列看起來有點不太舒服,不過作為補充印證還是比較有價值。

第七步,《Android系統源代碼情景分析》,羅升陽的源碼分析大作,比《Android的設計與實現》分析得更細致,但缺點是涉及到模塊比較少,選用的源碼也比《Android的設計與實現》更舊一點。看完書後需要去研究作者的博客,東西挺多的,一定讓你滿意。

第八步,買塊開發板自己玩。這步我還沒走到,原因是我覺得我還差點准備知識。可能要再幾個月,到時准備入塊6410或者樹莓派。

最後,由於我11年以前都是搞Windows這塊的,所以對Linux知識不是很了解,不得已看了這么些書,如果是一直做Linux的人,很多步驟估計可以省掉了。直接上源碼才是正道。

我本身做著移動GIS開發的工作,學框架層全是因為興趣,但招聘平台Android框架層開發人員還是蠻有競爭力的有不少定製ROM,智能電視的工作都處於人才難求狀態,畢竟有一定的門檻,現在各種ios培訓,讓奔著錢干開發的人紛紛湧入,而ios只能幹sdk開發的缺點就暴露出來了,一堆新手老手,菜鳥大牛全擠在SDK開發這塊,我覺得不太妙。 反觀Android這邊,雖然入門菜鳥沒有搞ios來錢,但是可持續性很好,從sdk-》框架》驅動》內核這樣幹下去。干著干著發現自己漸漸變成了Linux開發者/嵌入式開發者的人也不少,新人,老手,菜鳥大牛各居其位,層次性很好。

Ⅱ 請問編程中的 上層 和 底層 是什麼意思 比如有人說 "游戲用JAVA或c#做上層,用匯編或c/

上層(或者是表層)、中間層和底層沒有嚴格意義上的定義,在不同的項目中需要結合具體需求來具體分析。

一般來說,表層就是指展現給用戶看的部分;而底層就是系統的最核心的部分。一般我們認為,越接接硬體的編程就越底層。

比如,一個在線通訊軟體(QQ這種),表層就是窗口啊、菜單啊、按鈕啊這些玩意兒;中間層是業務邏輯部分,就是你點擊這些按鈕會產生相應的什麼事件,進行了什麼操作;底層就是Socket網路通信了。當然,我這里這三層是大致劃分的,實際開發中比這個要更具體詳細。

再比如,拿題主說的游戲舉例子,表層就是各種游戲的界面了;底層就是游戲引擎了。底層幹嘛?接收你的滑鼠鍵盤響應信號、操作顯卡在顯示器指定位置生成各種二維的三維的圖像、控制音效卡輸出音頻等等等等。

至於編程語言問題,這就牽扯到低級語言和高級語言的問題了。一般來講低級語言和高級語言區別在於:

  • 高級語言:實現效率高,執行效率低,對硬體的可控性弱,目標代碼大,可維護性好,可移植性好。

  • 低級語言:實現效率低,執行效率高,對硬體的可控性強,目標代碼小,可維護性差,可移植性差。

越低級的語言,形式上越接近機器指令(匯編語言就是與機器指令一一對應的)。而越高級的語言,一條語句對應的指令數越多,其中原因就是高級語言對底層操作進行了抽象和封裝,使編寫程序的過程更符合人類的思維習慣,並且極大了簡化了人力勞動。也就是說你用高級語言寫一句,會被轉換成許多底層操作,大部分的工作交給了負責轉換的機器(即編譯器),從而人力得到了解放。因為機器就是用來為人類提供便利的,所以說高級語言的出現是計算機發展的必然結果。(參考:http://blog.csdn.net/guoxiaoqian8028/article/details/9103151)這就產生了執行效率的問題。

所以說用 C/C++ 這類語言更適合寫游戲引擎。游戲嘛,必定是要求響應速度極高的,總不能按完鍵盤了等100毫秒才響應,生成個三維地圖電腦卡半天。但一般不會游戲的所有部分都用 C/C++ 來完成,為什麼?上面說了,可維護性差、可移植性差。這時候就需要用面向對象這種「高級語言」出馬了。

至於題主提到的「不同語言之間的互通」,建議題主理解一下「介面」(不是面向對象里的「介面類型」)的概念。

泛泛而談,希望對題主有所幫助。

Ⅲ 手機上的安卓操作系統是什麼語言編程_安卓系統是用什麼語言編寫的

1,Android系統框架層次。Android系統內核是基於Linux系統開發而來的,許可權高度自由,睜掘源代碼完全開放,是一種拓展性非常強的操作系統,免費開源,可定製,這也是迅速風靡全球的原因吧!主要使用對象是移動設備,由Google和開放手機聯盟領導及開發。其內核編程語言是c/c。android使用dalvik虛擬機制,本質上它是一個Java虛擬機。而且對於每一個APP都會創建個dalvik虛擬機,也就是一個linux進程。

2,孝早液android底層驅動,以及操作系統全部內核都是使用C語言和匯編語言編程開發。但是android操作系統本身是使用Java開發,使用JNI調用本地的C語言庫,由操作系統實現對底層調用。

3,android應用開發,即手機app開發,使用的是Java語言,一般不會用到c/c語言。因此,想投身手機應用開發的小夥伴們巧物,可以直接鑽研Java語言即可。

總結來說,安卓系統也只不過是基於linux系統內核開發的一個Java虛擬機,然後在虛擬機里運行java程序。就像我們在windows電腦里安裝一個虛擬機,運行其它操作系統進行軟體測試一樣,這個其它的操作系統就相當於安卓,然後大家開發的所有軟體,在這個虛擬機里使用。

希望可以幫到您,謝謝!

Ⅳ 如何用手機進行編程有哪些值得推薦的軟體

手機上可以編程的軟體其實有很多,有付費的也有免費的,這里簡單介紹幾個免費的手機編程軟體,主要分為C/C++、Java、python、Html和Linux5個方面,感興趣的朋友可以自己下載嘗試一下,主要內容如下:

這里介紹一個手機軟體—C++編譯器,可以直接編輯運行C/C++代碼,代碼高亮,自帶有語法檢查功能,使用起來非常不錯,下面我簡單介紹一下這個軟體:

1.首先,安裝C++編譯器,這個直接在手機應用商店中搜索就行,如下,大概也就2.6兆左右,直接下載安裝:

2.安裝完成後,我們就可以直接編寫C語言代碼了,效果如下,關鍵字高顯亮,還可以自動進行語法檢查:

自帶有簡單的TCC編譯器,可以直接編譯運行C語言程序,如下:

3.這里你也編寫C++程序,效果如下,只不過不能直接編譯運行,需要先安裝G++插件,才能正常運行:

這里介紹一個手機軟體—AIDE,相當於手機上的Java開發環境,可以直接編輯運行Java程序,還可以進行簡單的安卓開發,下面我簡單介紹一下這個軟體:

1.首先,安裝AIDE集成開發環境,這個也直接在手機商店中搜索就行,如下:

2.安裝完成後,我們直接新建Java項目,之後就可以直接編寫Java程序了,效果如下,這里支持語法提示、檢查和自動補全功能, 使用起來非常不錯:

點擊運行這個Java程序,效果如下:

3.這里也可以編寫一些簡單的安卓程序,效果如下,而且官方自帶有教學入門實例,非常適合初學者學習和掌握:

程序運行效果如下:

這里介紹一個手機軟體—QPython3,相當於手機上的Python3集成開發環境,自帶有Python3解釋器,支持命令行和文本編程兩種方式,下面我簡單介紹一下這個軟體:

1.首先,安裝QPython3,這個與上面的軟體一樣,直接在手機應用中搜索就行,如下:

2.安裝成功後,打開這個軟體,點擊主界面中的終端,就可以直接進入到python命令行,一行命令一行輸出,效果如下:

3.這里你也可以先使用QEdit編輯器編輯Python程序,然後直接點擊運行,效果是一樣的,如下:

這里介紹一個手機軟體—w3cschool編程學院,可以直接在線編輯和運行Html代碼,使用起來非常方便,下面我簡單介紹一下這個軟體:

1.首先,下載安裝w3cschool編程學院,這個也直接搜索就行,如下:

2.安裝成功後,打開這個軟體,直接搜索Html,就可以找到所有的Html資料和教程,這里我們點擊進去,就可以直接查看所有資料,如下:

每一章節都有詳細介紹和示例,非常適合初學者學習;

3.這里你也可以在線編輯運行Html代碼,非常方便,效果如下:

這里介紹兩個手機軟體—Termux和Termius,這兩個軟體都相當於手機上的Linux SSH客戶端,可以直接遠程連接Linux,執行相關操作,下面我簡單介紹一下這2個軟體:

1.首先,安裝Termux,這個直接搜索就行,如下,不大,直接下載安裝:

2.安裝完成後,打開這個軟體,我們就可以直接執行Bash命令,效果如下:

3.如果你需要遠程連接Linux的話,可以先安裝ssh命令,之後就可以遠程登錄Linux伺服器了,效果如下:

1.首先,安裝Termius,這個也直接搜索就行,如下:

2.打開這個軟體,默認會有一個本地的終端連接,可以執行簡單的shell操作,如下:

3.這里你也可以新建ssh連接,遠程連接Linux系統,非常方便,使用起來也很不錯:

至此,這里就介紹完了這5類手機編程軟體,感興趣的朋友可以在自己手機上下載嘗試一下,偶爾作為編程學習來說,還是非常不錯的,但是實際開發學習的話,建議還是在電腦上進行,調試運行程序更方便,希望以上分享的內容能對你有所幫助吧,也歡迎大家留言交流。

Android的底層是Linux,理論上Android是具有編程完備性的,只不過Android在Linux kennel上加了一層Android運行環境,這一層環境是虛擬機,再加上Android本質上是在移動平台,編程功能就削弱了。iOS的本質是Unix,最早的iPhone甚至是直接運行的Mac OS X,因此iOS同樣也具有編程完備性。

不過在正式回答這個問題之前我不得不說一句,倘若你是想把編程作為一個興趣,你當然可以在手機上寫寫代碼,反過來你要把編程作為以後吃飯的事業,或者說想要在編程方面取得一個比較大的成就,你還是應該選擇用電腦編程。

這一款工具你一定要熟悉,這是Android上的一款神器。

Termux可以幫助你在Android上搭建完備的Linux環境,你可以理解為類似Windows上的Cygwin,它並非是Linux上的虛擬機環境,並且安裝包只有幾百KB而已。

你可以安裝python環境,甚至安裝Linux上的很多包,這款工具還支持ssh、ftp等眾多連接方式。

C4droid是Android平台傷的一款C/C++集成開發環境,默認支持tcc編譯器,可以選擇安裝gcc插件,這款編程工具可以用SDL簡單媒體層庫,也支持qt開發,甚至還可以開發native Android app開發,功能還是比較全的。

網路貼吧有一些用戶發布了比較新的版本,默認使用g++編譯器。

這是Android上功能強大、但是使用簡單的python集成開發環境,python這門編程語言的缺點是怎麼寫都行,不過優點也是怎麼寫也可以,隨著人工智慧的爆發,python已經成為了一門非常重要的編程語言。

全功能的終端模擬器,pip包管理器,內置了C/C++眾多庫,用起來非常方便,順便提醒一下的是,這款軟體的作者跟C4droid是同一個。

這個功能還是比較強大的,可以在Android系統上進行app和 游戲 開發,也是一個具有編寫、編譯、調試的全功能的集成開發環境。

這款集成開發環境支持錯誤檢查、代碼重構、智能代碼導航、生成apk文件,並且可以直接將生成的apk文件進行安裝調試。AIDE還完全兼容eclipse項目,你只需要把代碼復制到你的AIDE中,就可以繼續寫代碼。

AIDE有兩個版本,一個是面向本地開發的AIDE常規版本,一個是面向網路開發的AIDE Web,主要支持的編程語言有C++/Java/JavaScript等。

當然在iOS平台上也有C/C++集成開發環境,Pico Compiler等編程工具,不過目前在編程工具方面Android平台更加開放,一些開發者也更願意放一些這些工具上去。不過還是那句話,如果你想學好編程,建議還是到PC上安裝相應的開發環境操作,屏幕更大、IDE功能也更多更全,電腦鍵盤敲代碼也比手機上小鍵盤敲代碼舒服得多。

這里介紹幾個可以在手機上編程的軟體,感興趣的可以下載一下,試著操作一下:

1.Python:這里推薦一個軟體—QPython3,集成了Python3解釋器、Console控制台和QEdit編輯器,可以直接編輯運行python代碼,也可以進行簡單的安卓開發,下面我簡單介紹一下這個軟體的安裝和使用:

安裝的話,直接在手機應用中搜索就行,如下:

圖1

安卓手機游戲是用什麼編程語言開發的


一、安卓系統開發語言-C/C++


android系統是基於Linux內核開發的,所以底叢肢飢層還是Linux內核與驅動。上層是C/C++本地庫和Android運行時環境,這一層主要是android虛擬機和支持虛擬機運行的本地庫,採用C/C++語言開發飢核。

二、安卓軟體編程語言-Java


為了方便開發谷歌採用了Java語言來開發安卓應用,應用程序框架層API是採用Java語言編寫的,方便開發者調用。上層是應用層,就是平時開發者自己開發的應用。這一層谷歌官方支持的編程語言是Java和Kotlin。


三、手機軟體編程語言-Kotlin


安卓手機應用早期使用Java開發的比較多,現在多了很多用Kotlin開發的,Kotlin是Google和Oracle發打完官司以後,自己推出來的。代碼里可以同時使用Java和Kotlin,目前看來Kotlin已經能滿足正常開發需求,並能穩滲返定運行,之所以很多公司還沒有完全切換,主要還是歷史遺留的java代碼,已經能穩定運行的,沒有必要再花時間和人工去重構。


2d的一般用cocos,語言是c++,3d一般用的是u3d,語言是js或者c#,上面那倆都是跨平台的,要是lz足夠牛x的話直接上opengles


Ⅵ 有哪些關於 Android 系統架構,底層實現方面的技術書推薦

深入淺出 Android – Google 手持設備應用程序設計 入門書籍,作者寫的很不錯,可以在閱讀 SDK 的同時閱讀這本書,中間的一些使 用介紹的非常清楚,最重要的是中文版的 Google Android 應用框架原理與程式設計 36 技 最早介紹 Android 的中文書籍,台灣人寫的繁體版的,看得有些影響,不過還是值 得耐心閱讀的 Android A Programmer』s Guide 多個專家寫的介紹 Android 的書籍, 內容寫的很不錯, Ask the Expert 部分針對一些 問題作了詳細的說明 Android Essentials 對 Android 介紹的比較全面,從安裝到開發,應該有新版本了。 Google Android SDK 開發範例大全 ( 第 2 版 ) 以 Android 手機應用程序開發(採用 AndroidSDK2.1 )為主題,通過 160 多個範例 全面且深度地整合了手機、網路及服務等多個開發領域,為讀者提高程序設計功力 提供了很大的幫助。 Google Android 開發入門與實戰 內容上覆蓋了用 Android 開發的大部分場景,從 Android 基礎介紹、環境搭建、 SD K 介紹、 Market 使用,到應用剖析、組件介紹、實例演示等方面。從技術實現上, 講解了 5 個 Android 平台下的完整綜合實例及源代碼分析,分別是 RSS 閱讀器、基 於 Google Map 的個人 GPS 、豆瓣網( Web 2.0 )客戶端、在線音樂播放器、手機信 息助手,為初學者學習與實踐結合提供了很好的指導。 Android 平台開發之旅 涵蓋了 Android 平台 1.5 到 2.2 版本的主要功能特性,立足實際的開發案例, 介紹了 Android 手機平台開發的基礎概念、 實用技術和應用模式。 主要內容包括: 平台基礎、 開發環境搭建、程序框架、高級界面和底層界面設計、文件系統管理、網路通信、 無線通信、多媒體編程、個人信息管理、電話系統、資料庫應用、 XML 應用和地圖 應用。開發實例多達 120 例。 如何成為 Android 高手 成為一名真正的 Android 高手必須掌握和遵循的一些准則: 1 ,學會懶惰 2 ,精通 Android 體系架構、 MVC 、常見的設計模式、控制反轉( IoC ) 3 ,編寫可重用、可擴展、可維護、靈活性高的代碼 4 ,高效的編寫高效的代碼 5 ,學會至少一門伺服器端開發技術 Android 開發指南中文版之應用程序框架 Android SDK1.5 版的英文開發資料 Android Development Guide 中應用程序框架部 分的翻譯 PDF 文

Ⅶ 手機c語言編程app

手機c語言編程app有《C語言學習寶典》、《C語言編譯器》、《C語言編譯器IDE》、《菜鳥學C語言》、《手機編程》。

1、《C語言學習寶典》

就算沒有電腦也能夠完成手機編程,專磨茄棗業客服在線幫你解答任何問題,超多趣味工具製作出簡單的APP,來自各路的大神分享自己的原創教程,通俗易懂的教學案例讓你一看就懂。

c語言編程介紹

C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲納返器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
熱點內容
晚晚教編程 發布:2024-04-19 21:56:23 瀏覽:712
安卓換蘋果語音留言怎麼看 發布:2024-04-19 21:56:21 瀏覽:627
解壓神經 發布:2024-04-19 21:47:03 瀏覽:894
c語言字元轉義字元 發布:2024-04-19 21:43:51 瀏覽:727
mysql存儲過程語法 發布:2024-04-19 21:00:04 瀏覽:245
修復損壞的壓縮文件 發布:2024-04-19 20:53:32 瀏覽:423
編程發型 發布:2024-04-19 20:53:28 瀏覽:500
去除空格sql 發布:2024-04-19 20:43:30 瀏覽:785
linuxcp覆蓋 發布:2024-04-19 20:43:30 瀏覽:189
mplayerlinux 發布:2024-04-19 20:33:57 瀏覽:800