- Android底層接口與驅(qū)動開發(fā)技術(shù)詳解
- 陳強(qiáng)
- 581字
- 2019-10-12 15:38:27
1.2.1 霧里看花的開源
在Android剛被推出時(shí),只能用Java語言開發(fā)應(yīng)用程序,這就需要所有的應(yīng)用程序都運(yùn)行在一個(gè)巨大的虛擬機(jī)上。2009年6月,Android發(fā)布了NDK工具包,可以支持C/C++語言編程,但是性能不如SKD工具包中的Java語言。
2010年2月,在開源界發(fā)生了一件大事。Linux Kernel的維護(hù)者Greg Kroah-Hartman宣布,將Android代碼從Linux kernel代碼庫中刪除,此事對于普通用戶可能并沒有什么影響,但對于開發(fā)者來說,尤其是開源社區(qū)的開發(fā)者來說,這算是一顆重磅炸彈。消息公布以后,外界普遍覺得驚訝和可惜。好不容易,才有了一個(gè)這么受歡迎的開源手機(jī)系統(tǒng),應(yīng)該齊心協(xié)力、共同開發(fā)才對,為什么要“窩里斗”呢?到底是什么矛盾,使得Linux Kernel小組剔除Android代碼呢?
從Linux 2.6.33版本開始,Google智能手機(jī)操作系統(tǒng)Android核心代碼全部被刪除。這是因?yàn)樘岢_源的Android在Linux面前使用了霧里看花的把戲,它修改了Kernel內(nèi)核,但是又不提供修改的細(xì)節(jié),這相當(dāng)于自己搞了一個(gè)封閉的系統(tǒng)。盡管Android取得了空前的成功,但是Google也放棄了構(gòu)建一個(gè)真正開源的手機(jī)系統(tǒng)的機(jī)會,從而也就不能獲得由全世界程序員提供智慧、分享代碼和推動創(chuàng)新的好處。由此可見,是因?yàn)锳ndroid的不真正開源,所以才被從Linux體系中刪除的。
Android與Ubuntu、Debian、Redhat等傳統(tǒng)的Linux發(fā)行版本相比,只有系統(tǒng)的底層結(jié)構(gòu)是一樣的,而其他東西在Android中都不一樣,尤其是程序員的編程接口是完全不同的。所以必須重新寫Android應(yīng)用程序后才能使用,現(xiàn)存的Linux程序無法移植上去。由此可見,Android是一種全新的系統(tǒng),它與Linux的距離很遠(yuǎn)。
- Django+Vue.js商城項(xiàng)目實(shí)戰(zhàn)
- FuelPHP Application Development Blueprints
- Objective-C Memory Management Essentials
- Leap Motion Development Essentials
- Neo4j Essentials
- JavaScript前端開發(fā)與實(shí)例教程(微課視頻版)
- Learning Zurb Foundation
- iOS開發(fā)實(shí)戰(zhàn):從入門到上架App Store(第2版) (移動開發(fā)叢書)
- Windows Phone 7.5:Building Location-aware Applications
- Photoshop智能手機(jī)APP界面設(shè)計(jì)
- 一步一步學(xué)Spring Boot:微服務(wù)項(xiàng)目實(shí)戰(zhàn)(第2版)
- Docker on Windows
- Implementing Domain:Specific Languages with Xtext and Xtend
- Unity3D高級編程:主程手記
- Responsive Web Design with HTML5 and CSS3(Second Edition)