前言
前段時間受公司業務發展需要,探索性進入Android開發領域。一切從零開始,java基礎,Java進階,Android框架學習,Eclipse熟悉,最終到第一個即時通訊App完成,歷經一個月的時間。實現內容包含一個即時通訊服務端,Mysql數據庫搭建,Android客戶端通訊App。完成之后公司出於戰略考慮,暫時放棄了Android。讓我覺得,哎,還是不要太相信領導的話為好...>..<...趁着記憶還不算模糊,打算把這段經歷和學習過程記錄下來,以備日后需要。
只會一門語言的只能稱之為技術人員,真正的程序員不應該局限於語言,或者局限於平台。我從來不爭論Java好還是.net好,或者windows方便還是Linux強大,技多不壓身,趁年輕,橫向開闊視野,東西只有親歷過才知道好與不好,如果能達到天下武功均可為我所用,那簡直是最好了。
好了,開始介紹Java,最好學習Java的方式是和.Net對比。想象做.NET開發我們需要什么?一個運行環境.net framework,一套包含基礎BCL,編譯器等的SDK,以及一個開發工具visual studio,Over,那么我們從上面提的角度來學習java.
JavaSDK簡介
首先Java的運行環境是JRE,等同於.Net Framework,Java的開發工具套件為JDK,JDK就是Java Development Kit.簡單的說JDK是面向開發人員使用的SDK,它提供了Java的開發環境和運行環境。你裝JDK的話JRE也就自動安裝了。SDK是Software Development Kit 一般指軟件開發包,可以包括函數庫、編譯程序等。JDK分為Java SE,J2EE,J2ME三個版本,它的組成基本組成有:
javac – 編譯器,將源程序轉成字節碼 ------------------
對應於.Net CSC(CSC是.Net的編譯器,更多詳情請自行百度。。。)
jar – 打包工具,將相關的類文件打包成一個文件----------
跟.Net生成類庫的過程類似,相當於.Net的命令csc.exe /t(arget):library /r(eference):xxx.dll xx.cs (意思是生成目標為類庫 生成的時候引用xxx.dll 同時將xx.cs一起編譯)
javadoc – 文檔生成器,從源碼注釋中提取文檔-----------
.Net有第三方文檔工具
jdb – debugger,查錯工具----------------------------
略過
java – 運行編譯后的java程序(.class后綴的)----------
Java的”CS“文件是以.java結尾的,經過編譯之后變為.class.(.Net編譯過的是什么?)
appletviewer:小程序瀏覽器,一種執行HTML文件上的Java小程序的Java瀏覽器。---
有點類似與.Net的Cassini(好吧如果你不知道Cassini的話又請自行百度。。。)
Javah:產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件。----------------
Java的本地庫調用名稱為JNI,即Java native interface,等同於P/invoke,當然java對於這個還有專門的NDK,就是方便C/C++和java互相調用的一個SDK套件,讀者不用專門了解,后續android部分會有補充
Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數據,同時顯示字節代碼含義。-------------
類似於.net的ILSPY
Jconsole: Java進行系統調試和監控的工具----------------
略過
JavaSE類似與開發winform所用的SDK,J2EE類似與開發Asp.net MVC所用的SDK,J2EE一般都會用Spring和Hbernate 前者包含IOC和AOP功能等,后者是ORM框架,跟.Net的EF類似,J2ME類似與開發winCE程序所用的SDK。
開發工具和時間分配
介紹完JRE和JDK,接下來就是介紹開發工具,Java的開發工具主要有Eclipse和IntelliJ IDEA,后者同時也是大名鼎鼎的Resharper的開發商,我這里做Android開發,就選eclipse了。
說說我那一個月的時間是怎么分配的:
java+eclipse: 一周
android framework: 兩周
android客戶端 app+mysql+服務端: 一周。
所以大家不用在java語言本身上糾結或者惶恐。盡管語言本身最貼近開發人員,卻最遠離實際運行的機器碼。后續開發Android的時候我會介紹Java我是怎么用的。
下一講
好了,今天就到此為止,下一講我們就來對android framework做做分析。
想給女朋友做App的同志們請留意我的后續文章。