最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android學習項目之簡易版微信為例(一)

 更新時間:2016年06月20日 16:52:07   作者:lijihong0723  
這篇文章主要以簡易版微信為例,為大家介紹了Android簡易版微信項目的基礎(chǔ)知識,感興趣的小伙伴們可以參考一下

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

1 緣起

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

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

2 一個程序員眼中的Android

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 Android項目的目錄結(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的配置,請度娘參考相關(guān)博客,在此就不做贅述了。

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

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

3.1 清單文件

清單文件即AndroidManifest.xml文件,此文件是Android工程中非常重要的配置文件,用XML來書寫。學習過Java Web的童鞋一定知道,在SSH框架中就有許許多多的XML配置文件。Android中的配置文件和SSH框架中的配置文件功能上有些類似,即為框架運行提供必要的數(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>

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

3.2 代碼文件夾

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

1.源代碼文件夾

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

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

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

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

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

3.3 資源文件夾

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

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

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

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

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

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

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

4 總結(jié)

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android實現(xiàn)為Notification加上一個進度條的方法

    Android實現(xiàn)為Notification加上一個進度條的方法

    這篇文章主要介紹了Android實現(xiàn)為Notification加上一個進度條的方法,結(jié)合實例形式分析了Android針對Notification組件的相關(guān)操作技巧,需要的朋友可以參考下
    2016-10-10
  • Android使用注解代替枚舉節(jié)省系統(tǒng)內(nèi)存開銷的方法

    Android使用注解代替枚舉節(jié)省系統(tǒng)內(nèi)存開銷的方法

    在本篇文章里小編給大家整理的是關(guān)于Android使用注解代替枚舉節(jié)省系統(tǒng)內(nèi)存開銷的方法和實例,需要的朋友們參考下。
    2020-01-01
  • Android中Service和Activity相互通信示例代碼

    Android中Service和Activity相互通信示例代碼

    在android中Activity負責前臺界面展示,service負責后臺的需要長期運行的任務(wù)。下面這篇文章主要給大家介紹了關(guān)于Android中Service和Activity相互通信的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • Android版學生管理系統(tǒng)

    Android版學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Android版學生管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android Fragment多層嵌套重影問題的解決方法

    Android Fragment多層嵌套重影問題的解決方法

    這篇文章主要介紹了Android Fragment多層嵌套重影問題的解決方法,從解決bug的思想,導致原因,原理解析等方面找出問題所在原因,最終解決方法就可以簡單了,對fragment 多層嵌套問題感興趣的朋友一起通過本文學習吧
    2016-08-08
  • 詳解Android Studio無法檢測新版本問題解決

    詳解Android Studio無法檢測新版本問題解決

    這篇文章主要介紹了詳解Android Studio無法檢測新版本問題解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Android用戶注冊界面簡單設(shè)計

    Android用戶注冊界面簡單設(shè)計

    這篇文章主要為大家分享了Android用戶注冊界面簡單設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Android新聞廣告條滾動效果

    Android新聞廣告條滾動效果

    這篇文章主要為大家詳細介紹了Android新聞廣告條滾動效果的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android實現(xiàn)簡單卡片布局

    Android實現(xiàn)簡單卡片布局

    這篇文章主要為大家詳細介紹了Android實現(xiàn)卡片布局的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • JS實現(xiàn)點擊參數(shù)面板按鈕顯示或隱藏數(shù)據(jù)

    JS實現(xiàn)點擊參數(shù)面板按鈕顯示或隱藏數(shù)據(jù)

    本文主要介紹JS實現(xiàn)點擊參數(shù)面板按鈕顯示或隱藏數(shù)據(jù)的方法,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03

最新評論

申扎县| 三都| 呼和浩特市| 祥云县| 绥德县| 杂多县| 彭阳县| 苗栗县| 崇信县| 大安市| 手机| 息烽县| 定陶县| 辛集市| 交城县| 惠水县| 瓦房店市| 射阳县| 桂阳县| 东丽区| 收藏| 海丰县| 延川县| 西藏| 肇东市| 石棉县| 麻江县| 通河县| 鞍山市| 鹿邑县| 吉木乃县| 咸宁市| 湘潭市| 阳春市| 大同县| 全椒县| 廉江市| 正阳县| 东乌珠穆沁旗| 余庆县| 扶绥县|