国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android學(xué)習(xí)項(xiàng)目之簡(jiǎn)易版微信為例(一)

2019-12-12 06:10:18
字體:
供稿:網(wǎng)友

這是“Android學(xué)習(xí)之路”系列文章的開篇,可能會(huì)讓大家有些失望――這篇文章中我們不介紹簡(jiǎn)易版微信的實(shí)現(xiàn)(不過不是標(biāo)題黨哦,我會(huì)在后續(xù)文章中一步步實(shí)現(xiàn)這個(gè)應(yīng)用程序的)。這里主要是和廣大朋友們聊聊一個(gè)非Java程序員對(duì)Android操作系統(tǒng)的理解以及一個(gè)Android工程的目錄結(jié)構(gòu),為進(jìn)一步學(xué)習(xí)做準(zhǔn)備。

1 緣起

智能手機(jī)的出現(xiàn)與普及為人們的生活、工作帶來了極大的便利,我們可以用手機(jī)隨時(shí)隨地、隨心所欲地購(gòu)物、玩游戲、聊天、聽音樂等等。一個(gè)個(gè)精心設(shè)計(jì)、體驗(yàn)良好的移動(dòng)客戶端應(yīng)用,讓用戶們愛不釋手,人們現(xiàn)在已經(jīng)越來越離不開智能手機(jī)了。這或許是廣大程序員學(xué)習(xí)移動(dòng)應(yīng)用開發(fā)的一個(gè)重要原因吧,這也是我學(xué)習(xí)Android開發(fā)的原因之一。

下面來說說為什么想寫一個(gè)關(guān)于Android開發(fā)的系列博文。目前是做PC端軟件的開發(fā),主要做的是使用C++編寫圖像處理與顯示的邏輯,軟件的前端界面采用的是WPF。去年下半年,公司鼓勵(lì)前端(WPF)轉(zhuǎn)后端(C++)和后端轉(zhuǎn)前端,作為一個(gè)有上進(jìn)心的程序員,當(dāng)然要響應(yīng)領(lǐng)導(dǎo)的號(hào)召了^_^。之后就開始WPF學(xué)習(xí)之旅了,學(xué)了一段時(shí)間之后,算是有些入門,至少能用WPF做一些簡(jiǎn)單的功能了。也是在那個(gè)時(shí)候開始博主開始接觸Android,畢竟還是希望在工作之余能夠提升一下自己,于是就看了一些博文和相關(guān)的書籍。斷斷續(xù)續(xù)學(xué)了半年,雖然感覺在某些方面與WPF很像,但對(duì)Android的理解還是不深刻。于是博主開始思考,怎樣才能更好地理解掌握Android呢?對(duì)于一個(gè)計(jì)算機(jī)(或工科)專業(yè)出身的人來說,所能想到的最好的學(xué)習(xí)方法便是實(shí)踐――選擇一個(gè)不是太復(fù)雜的項(xiàng)目,把它一步步做出來,一點(diǎn)點(diǎn)完善它?;诖?,決定寫一個(gè)系列博客,記錄自己的學(xué)習(xí)之路和項(xiàng)目開發(fā)之路。微信應(yīng)用是我們?nèi)粘J褂米铑l繁的APK了,簡(jiǎn)易版的微信實(shí)現(xiàn)起來應(yīng)該不會(huì)太復(fù)雜,所以就準(zhǔn)備開發(fā)一個(gè)簡(jiǎn)易版的微信作為自己Android項(xiàng)目的實(shí)踐之旅。

2 一個(gè)程序員眼中的Android

關(guān)于Android的介紹、發(fā)展歷程、目前使用情況以及未來趨勢(shì),在這里就不做贅述了,這些對(duì)廣大程序員朋友來說肯定都有所了解。本節(jié)主要是講講自己以從程序員的角度對(duì)Android的一點(diǎn)淺薄的理解,當(dāng)然,一千個(gè)讀者心里有一千個(gè)哈姆雷特,每個(gè)人對(duì)Android的理解都會(huì)不一樣,這里介紹的僅是本人的個(gè)人見解。

Android是一個(gè)基于Linux內(nèi)核改造而來的、面向手機(jī)端(當(dāng)然現(xiàn)在Android已經(jīng)是發(fā)展到各個(gè)硬件平臺(tái)上了,包括Android TV、Android Wear等等)的操作系統(tǒng)。Android系統(tǒng)本質(zhì)上和普通的Linux桌面PC發(fā)行版沒什么區(qū)別,Android可以視為手機(jī)端Linux的發(fā)行版,只不過Google做了完善的封裝,以至于我們幾乎感覺不到Linux的存在。這里所講的封裝有兩層含義:

(1)對(duì)普通用戶而言,Android變得更親民,更大眾化,不像Linux那么高冷,需要良好的計(jì)算機(jī)底子的童鞋才能較好地使用;

(2)對(duì)應(yīng)用開發(fā)者而言,不需要接觸底層的C代碼和系統(tǒng)庫(kù)函數(shù)了,我們面對(duì)的是一些用Java寫的類庫(kù),其中包括著名的Android四大組件(后續(xù)我們?cè)敿?xì)闡述)、一套較完備的UI控件和一些輔助的工具類庫(kù)。

Android操作系統(tǒng)是分層實(shí)現(xiàn)的,其層次結(jié)構(gòu)圖如下圖所示:

這幅框架結(jié)構(gòu)圖,對(duì)于一個(gè)久經(jīng)沙場(chǎng)的老兵來說,理解起來也許并不是太困難;但對(duì)于一個(gè)初入職場(chǎng)不久的小白來說,可能一下子還看的不是很明白。不過沒關(guān)系,對(duì)于像我們這樣的小菜來說,完全沒必要把所有層次、所有組件都弄清楚:比如Linux Kernel(內(nèi)核)你有必要一開始就去學(xué)習(xí)嗎?―― 一開始去就去看這些不就是在自討苦吃么^_^???在內(nèi)核層之上那一層,什么SQLite、OpenGL|ES、SGL、libc、WebKit等等都是一些著名的開源項(xiàng)目,大多是用C語言寫的,對(duì)開發(fā)上層應(yīng)用的我們來說,也壓根沒必要一開始就去學(xué)習(xí)。最后看最上面一層――Application層,Home、Contacts、Phone……這些其實(shí)是系統(tǒng)內(nèi)置的一些應(yīng)用,和我們開發(fā)的應(yīng)用沒什么區(qū)別,所以也沒必要花太多時(shí)間去了解。對(duì)開發(fā)應(yīng)用的我們而言,學(xué)好下面兩層就好了:

第一層:Application Framework層,也就是應(yīng)用框架層。我們編寫應(yīng)用時(shí)所用的大部分組件都來自這里,最主要的包括:

View System,即視圖系統(tǒng),定義了一套UI庫(kù),包括布局類和控件類,用它們就可以定義應(yīng)用程序的界面了,這個(gè)庫(kù)很龐大,也是我們學(xué)習(xí)Android開發(fā)的一個(gè)難點(diǎn);

Activity Manager,即活動(dòng)管理器,活動(dòng)(Activity)是Android四大組件之一,它管理著和用戶界面顯示有關(guān)的邏輯和生命周期回調(diào);

Content Provider,即內(nèi)容提供者,同樣是Android的四大組件之一。數(shù)據(jù)是應(yīng)用程序的核心,使用內(nèi)容提供者就可以實(shí)現(xiàn)跨進(jìn)程/應(yīng)用的數(shù)據(jù)共享了。

Notification Manager,通知管理器,用于手機(jī)頂部狀態(tài)欄顯示系統(tǒng)通知,它也是Android的四大組件之一。

Resource Manager,資源管理器,顧名思義,即管理應(yīng)用程序資源的,如圖標(biāo)、背景圖片、常量字符串。

圖中還有一些其他組件,如Package Manager(包管理器)、Location Manager(位置管理器)等,這里就不具體介紹了,初學(xué)時(shí)接觸的不多。

第二層:Android Runtime層,也就是安卓運(yùn)行時(shí)層,其實(shí)就是一個(gè)Java虛擬機(jī)――Dalvik虛擬機(jī)和一個(gè)核心類庫(kù)。這部分和普通的Java虛擬機(jī)在使用方面都是一樣的,所以這一層雖然在開發(fā)中會(huì)接觸到,但只要學(xué)過Java的,應(yīng)該都懂。

所以,到此為止,我們應(yīng)該清楚了學(xué)習(xí)Android開發(fā)要學(xué)一些什么了,其實(shí)就是在學(xué)習(xí)Application Framework層,其他的看看就好,如果想進(jìn)一步深入的話,等到把基礎(chǔ)的學(xué)扎實(shí)了再說吧!

3 Android項(xiàng)目的目錄結(jié)構(gòu)

Android開發(fā)使用的IDE,主要有Eclipse + Android SDK(Software Develement Kit,軟件開發(fā)工具包)、Visual Studio + Xamarin(用C#語言開發(fā)Android程序)和Android Studio三種可供選擇,博主采用的是Android Studio 2.0,下載解壓無需安裝,直接就可以使用。關(guān)于Android Studio的JDK的配置,請(qǐng)度娘參考相關(guān)博客,在此就不做贅述了。

有了IDE,我們就可以很方便地創(chuàng)建一個(gè)Android工程了(關(guān)于工程創(chuàng)建,直接點(diǎn)擊下一步下一步即可,在此不再贅述)。下面就讓我們?cè)趯懘a前來認(rèn)識(shí)一下一個(gè)新建的Android工程的目錄結(jié)構(gòu),如下圖:

目錄結(jié)構(gòu)一目了然,我們分別學(xué)習(xí)一下各級(jí)目錄結(jié)構(gòu)及其作用。

3.1 清單文件

清單文件即AndroidManifest.xml文件,此文件是Android工程中非常重要的配置文件,用XML來書寫。學(xué)習(xí)過Java Web的童鞋一定知道,在SSH框架中就有許許多多的XML配置文件。Android中的配置文件和SSH框架中的配置文件功能上有些類似,即為框架運(yùn)行提供必要的數(shù)據(jù),新創(chuàng)建工程的AndroidManifest.xml的代碼如下:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.doll.firstapplicationdemo" > <application  android:allowBackup="true"  android:icon="@mipmap/ic_launcher"  android:label="@string/app_name"  android:supportsRtl="true"  android:theme="@style/AppTheme" >  <activity android:name=".MainActivity" >   <intent-filter>    <action android:name="android.intent.action.MAIN" />    <category android:name="android.intent.category.LAUNCHER" />   </intent-filter>  </activity> </application></manifest>

簡(jiǎn)單解釋一下:首先manifest根節(jié)點(diǎn),定義了命名空間和包名;接下來是application結(jié)點(diǎn),代表一個(gè)應(yīng)用程序,其中配置應(yīng)用程序的標(biāo)簽、名稱、主題等等;在application結(jié)點(diǎn)里面定義了主Activity(有點(diǎn)類似于Web開發(fā)中的首頁(yè)),屬性中定義了類名以及意圖過濾器(這里就不詳細(xì)展開了,在后面詳細(xì)講解activity時(shí)會(huì)介紹)。這樣,運(yùn)行程序時(shí),Android框架就可以幫我們建立必要的對(duì)象實(shí)例,讓我們的應(yīng)用程序運(yùn)行起來了。其實(shí),博主覺得這個(gè)配置文件和Spring框架中的ApplicationContext.xml配置文件的功能很類似。當(dāng)然,這個(gè)配置文件不是一成不變的,和SSH框架的配置文件一樣,隨著項(xiàng)目的不斷完善,我們會(huì)向其中寫入各種配置信息。

3.2 代碼文件夾

代碼文件夾包括Java源代碼子文件夾和測(cè)試代碼子文件夾,展開后如下:

1.源代碼文件夾

目前該文件夾下,定義一個(gè)Activity――MainActivity,這個(gè)類在之前介紹的清單配置文件中已經(jīng)提及;以后我們所編寫的程序邏輯類一般都放在這個(gè)文件夾下。

2.測(cè)試代碼文件夾I(androidTest)

在這個(gè)文件夾下放置需要使用Android SDK編寫的測(cè)試代碼。當(dāng)然,一般我們的測(cè)試代碼都會(huì)用到Android SDK,所以大部分的Android測(cè)試代碼都放在這一目錄下。

3.測(cè)試代碼文件夾II(test)

在這個(gè)文件夾下放置不需要使用Android SDK編寫的測(cè)試代碼。

3.3 資源文件夾

資源相當(dāng)于我們?cè)诔绦蜻\(yùn)行之前定義好的數(shù)據(jù),也是應(yīng)用程序的重要組成部分,為此Android Studio專門使用一個(gè)文件夾來管理應(yīng)用程序中使用的資源,其具體目錄結(jié)構(gòu)如下:

一個(gè)應(yīng)用程序通常有很多類型的資源,比如:

drawable:可繪制的資源,如背景圖片、背景選擇器等;

layout:UI布局資源,用于定義用戶界面;

mipmap:圖片資源,從上圖可以看到,分為hdpi(高分辨率)、mdpi(中等分辨率)、xhdpi/xxhdpi/xxxhdpi(超高分辨率…………)的資源,Android框架會(huì)根據(jù)手機(jī)的分辨率自動(dòng)選擇合適的圖片用于繪制。

values:在這個(gè)文件夾下主要放置一些常量資源,比如:顏色常量、維度(尺寸)常量、字符串常量以及樣式常量(定義控件的顯示樣式,類似CSS)等等。

除了上面介紹的這些資源外,Android還支持其他資源,如動(dòng)畫資源、顏色選擇器資源、菜單資源等,這些在以后博文中都會(huì)具體闡述。關(guān)于以上這些資源如何定義以及如何在其他資源文件或程序代碼中引用,也將在之后的博文中做進(jìn)一步介紹。

4 總結(jié)

最后來總結(jié)一下,本文介紹了學(xué)習(xí)Android的緣由、個(gè)人對(duì)Android操作系統(tǒng)的理解以及目前Android工程的目錄結(jié)構(gòu),其中目錄結(jié)構(gòu)相對(duì)比較重要。下一篇將正式開啟我們的APP開發(fā)之旅――實(shí)現(xiàn)簡(jiǎn)易版微信的登陸、注冊(cè)界面的編寫與簡(jiǎn)單交互。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新营市| 彩票| 溆浦县| 曲阳县| 大邑县| 邹城市| 太原市| 安庆市| 高要市| 察隅县| 麦盖提县| 晋中市| 南涧| 兴隆县| 万山特区| 西吉县| 工布江达县| 衡南县| 云梦县| 呼和浩特市| 武穴市| 惠水县| 图们市| 石屏县| 苏尼特右旗| 白水县| 延庆县| 奈曼旗| 松原市| 分宜县| 青冈县| 岢岚县| 临洮县| 嘉鱼县| 西丰县| 长阳| 界首市| 共和县| 大宁县| 舒兰市| 尼勒克县|