1. 程式人生 > >第二行程式碼學習筆記——第一章:開始啟程——你的第一行Android程式碼

第二行程式碼學習筆記——第一章:開始啟程——你的第一行Android程式碼

筆者前言

最近在讀郭霖大神的第二行程式碼,藉助第二行程式碼,在這裡我認真梳理Android知識,為了形成自己的知識體系。堅持寫一系列關於第二行程式碼的學習筆記,一是來提升自己的學習能力,堅持每天學習; 二是給自己整理一份資料,方便以後的查閱與複習。希望能夠幫助到更多的小夥伴們:

Android系統是目前世界上市場佔有率最高的移動作業系統。

1.1 瞭解全貌——Android王國簡介

Google為Android王國建立了一個完整的生態系統。

1.1.1 Android系統架構

Android系統架構分為四層:
(1) Linux核心層:
Android系統基於Linux核心。 為Android硬體提供底層驅動,例如顯示驅動,音訊驅動,照相機驅動,藍芽驅動,Wi-Fi驅動,電源管理等。

(2)系統執行庫層:
通過C/C++庫為Android系統提供特性支援,如:SQLite庫提供資料庫支援,Webkit庫提供瀏覽器核心支援。
該層還有Android執行時庫,提供核心庫,允許用Java語言開發Android應用。Android執行時庫還包含Dalvik虛擬機器(5.0後是ART執行環境)。

(3)應用框架層:
提供應用程式的各種API。

(4)應用層:
手機中所有的應用程式屬於應用層。

1.1.2 Android已釋出的版本、

1.1.3 Android應用開發特色

(1) 四大元件
Activity(活動)
Service(服務)
BroadCast Receiver(廣播接收者)
Content Provider(內容提供者

(2)豐富的系統控制元件
編寫漂亮介面。
定製自己的元件。

(3)SQLite資料庫
輕量級,運算速度極快的嵌入式關係型資料庫。支援SQL語法。

4)強大的多媒體
音樂,視訊,照相,錄音,鬧鈴等。

(5)地理位置定位
Android手機內建GPS,隨時隨地發現自己的位置。

1.2 手把手帶你搭建開發環境

“工欲善其事,必先利其器”

1.2.1 準備所需要的工具

  • JDK1.8以上:Java語言的軟體開發工具包(包含Java的執行環境,工具集合,基礎類庫等內容)
  • Android SDK:Android開發工具包
  • Android Studio:Android編譯器

1.2.2 搭建開發環境

1.3 搭建你的第一個Android專案

HelloWorld——永恆的經典。

1.3.1 建立HelloWorld專案

點選Start a new Android Studio Project開啟建立專案介面:

建立專案介面

最低相容版本設定介面

內建模板介面

建立活動和命名介面

建立成功介面

1.3.2 啟動模擬器

Genymotion_down

安裝好了之後,啟動並登入Genymotion。

啟動並登入

我已經下載好了幾個不同版本模擬器,大家無視即可,點選上方的”Add”按鈕。

Add

下載好之後,點選上方的”Start”按鈕,啟動模擬器。
啟動1

啟動2

這樣我們的模擬器已經啟動起來了。
開發建議用真機,畢竟模擬器再快,也不如真機用的舒心。

1.3.3 執行HelloWorld

執行HelloWorld到模擬器上。

工具欄的圖示

點選三角形按鈕,彈出對話方塊。

選擇裝置

HelloWorld執行成功:

執行成功

接下類我們來分析下HelloWorld這個專案吧。

1.3.4 分析你的第一個Android程式

展開HelloWorld專案。

Android

可以切換專案模式。

切換專案結構

切換成Project,真是的目錄結構

Project

分析結構:

  1. .gradle和.idea
    Android Studio自動生成的檔案。
  2. app
    專案中的程式碼,資源幾乎都在放app目錄下。
  3. build
    專案編譯時自動生成的檔案
  4. gradle
    包含gradle wrapper的配置檔案 ,使用gradle wrapper不需要提前將gradle下好,Android Studio會自動根據快取情況決定是否需要聯網下載。預設不啟用gradle wrapper,可以通過File ——> Setting ——> Build , Execution , Deployment ——>Gradle進行配置更改,開啟gradle wrapper。
  5. .gitignore
    指定的目錄或檔案排除在版本之外
  6. build.gradle
    專案全域性的gradle構建指令碼
  7. gradle.properties
    全域性的gradle配置檔案,這裡配置的屬性影響專案中所有的gradle編譯指令碼
  8. gradlew和gradlew.bat
    命令列介面執行gradle命令 ,gradlew Linux或Mac系統中使用 ,gradlew.bat Windows系統中使用 。
  9. HelloWorld.iml
    所有IntelliJ IDEA專案中都會自動生成的檔案,用來標識這是一個IntelliJ.IDEA專案。
  10. local.properties
    指定本機中SDK路徑,通常自動生成 。
  11. setting.gradle
    指定專案中所有引入的模組。

app目錄的結構:

app

分析app目錄結構:

  1. build
    編譯時自動生成的檔案。
  2. libs
    放置第三方jar包
  3. androidTest
    編寫Android Test測試用例,專案自動化測試
  4. java
    放置所有Java程式碼
  5. res
    專案資源目錄
  6. AndroidManifest.xml
    Android專案配置檔案
  7. test
    編寫Unit Test測試用例,專案自動化測試
  8. .gitignore
    控制版本忽略檔案
  9. app.iml
    IntellJ IDEA自動生成的檔案
  10. build.gradle
    app模組的gradle構建指令碼
  11. proguard-rules.pro
    指定專案程式碼的混淆規則

1.3.5 詳解專案中的資源

drawable 存放圖片
mipmap 存放應用圖示
value 存放字串,樣式,顏色等配置
layout 存放佈局檔案

1.3.6 詳解build.gradle檔案

Android Studio是採用Gradle構建專案的。

最外層build.gradle檔案:

外層gradle

app目錄下的build.gradle檔案:

app下的gradle

1.4 前行必備——掌握日誌工具的使用

1.4.1 使用Android的日誌工具Log

Android中日誌工具類:Log(android.util.log)提供了5個方法來列印日誌:

  • Log.v()。最小的日誌。——verbose。
  • Log.d()。除錯資訊。 ——debug,比verbose高一級。
  • Log.i()。比較重要的資訊。——info,比debug高一級。
  • Log.w()。警告資訊。——warm,比info高一級。
  • Log.e()。錯誤資訊。——error,比warm高一級。

1.4.2 為什麼使用Log而不使用System.out

Log:可控制列印資訊,確定列印時間,能新增過濾器,日誌有級別區分……
而System.out滿足不了。

1.5 小結與評論

搭建了第一個Android專案,並且對Android專案的目錄結構和執行過程有一定的瞭解。以及日誌的使用。
快速生成Log方法:log* 按Tab建。
執行程式的快捷鍵:Shift+F10(MAC control+R)。

相關推薦

第二程式碼學習筆記——第一:開始啟程——一行Android程式碼

筆者前言 最近在讀郭霖大神的第二行程式碼,藉助第二行程式碼,在這裡我認真梳理Android知識,為了形成自己的知識體系。堅持寫一系列關於第二行程式碼的學習筆記,一是來提升自己的學習能力,堅持每天學習; 二是給自己整理一份資料,方便以後的查閱與複習。希望能夠幫助

《算法導論》學習筆記第一(算法在計算中的作用)

out sep round 第一章 about win knowledge mode owin   第一章主要講了一些概念,什麽是算法,為什麽算法值得研究。   印象比較深的是章節的最後一句,是否具有算法知識與技術的堅實基礎是區分真正熟練的程序員與初學者的一個特征。使用現代

latex學習筆記 第一 LATEX須知

archive 開頭 一個 文本 作者 logs tex 基礎上 nbsp 本學習筆記全部從http://www.latexstudio.net/archives/6058抽取總結而來。 第一章 LATEX須知 1.1 概述 1.1.1 TEX   TEX是高德納開發的、以

Java Web 學習筆記 第一,java語言簡介

com 分布式 ron java瀏覽器 family javadoc 全球 intellij jvm 第一章 java語言簡介 一、什麽是java? Java 編程語言:簡單、完全面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的編程語言。

數據庫系統概論學習筆記-第一緒論

缺點 一起 表示 數據操作 不能 不變 抽象 ava 定義 數據庫系統概論-第一章緒論 寫在前面:寒假來臨,除卻走親戚和同學聚餐,王者榮耀等遊戲上分花銷一點時間之外,自認為要花一點時間學習數據庫和Android,以此來為下學期和共建項目打下一丟丟的基礎。為了鞭策自己,定

PRML學習筆記第一

som 能力 ef7 最大 網絡模型 乘除 數學 優雅 相互 【轉】 PRML筆記 - 1.1介紹 模式識別的目標 自動從數據中發現潛在規律,以利用這些規律做後續操作,如數據分類等。 模型選擇和參數調節 類似的一族規律通常可以以一種模型的形式為表達,選擇合適模型的過

python系列學習筆記 第一 基礎知識

1.python 3.x版本標準的資料型別:1)number 數字  2)string 字串 3)list 列表 4)tuple 元組 5)sets 集合 6)dictionary  字典  1)number數字:pyhton3.x支援的int、float

軟考網路規劃設計師教程學習筆記第一(一)

第1章計算機網路原理 1.1計算機網路概論(P1-10) 1、定義與應用 計算機網路是一個將分散的、具有獨立功能的計算機系統,通過通訊裝置與線路連線起來,由功能完善的軟體實現資源共享的系統。 計算機網路的幾個應用方向:對分散的資訊進行集中、實時處理;共享資源;電子化辦公與服務

語言學概論學習筆記--第一 語言的功能

前言:學習語言學概論,記錄如下,綠色小字是我自己的一些小想法。教材電子書地址語言學綱要_葉蜚聲_2010修訂版 第一章 語言的社會功能 一 語言是人類最重要的交際工具 語言的作用: 傳遞資訊:交流事實與態度 人際互動:建立人際關係、情感聯絡 1.語言的三大元

Android設計模式學習筆記第一-----面向物件的6大原則

一、單一職責原則 說明:每一個類中的屬性及方法都具有與這個類強相關的特點。如需要構建一個影象快取的功能,根據UML圖完成設計,則需要構建一個影象快取的類ImageCache,和一個影象載入的類ImageLoad。如果把這兩個類的功能共同放到影象快取類ImageCache中,

周志華西瓜書《機器學習筆記學習筆記第一《緒論》

最近在幫學弟做一個關於OCR的專案,所以這幾個星期都沒有在CSDN上更新文章。今天登入後發現有還幾個小夥伴關注我了,很開心~。我會繼續在CSDN上更新一些內容,總結自己每個階段的學習情況。 周志華老師的西瓜書堪稱學習機器學習的必備書籍,很多學生包括我自己都是從這本書開始接觸機器學習。

nginx程式碼學習_第一守護程序

最近在學習linux的一些開原始碼,nginx是我想要學習的第一個目標,因為它十分小巧相對於它的強大功能來說. 我使用過http服務端,檔案目錄瀏覽.除此之外我知道的還有反向代理,負載均衡,等功能.最主要的還是他程式碼量比較少,和我以前使用的專案結構相似有著一定的親切感.

第一程式碼第一——一行Android程式碼

第一行程式碼第一章—你的第一行Android程式碼 知識點目錄 1.1 瞭解全貌——Android王國簡介 1.1.1 Android系統架構 1.1.2 Android已釋出的版本 1.1.3 Android應用開發特色

js學習筆記-第一基本概念-變數

注意點: 1、js是弱型別語言 <head> <meta charset="UTF-8"> <title></title> <script> //一種型別賦給另外一種型別是適用的,但不推

《C++ Primer Plus》學習筆記——第一 介紹C++

C++在C語言的基礎上添加了面向物件程式設計和泛型程式設計。C++繼承了C語言高效、簡潔、快速和可移植性的傳統。 C++比C多了兩樣程式設計方法,這使得它功能強大,同樣也意味著使用者需要學習更多的內容。 C++融合了三種不同的程式設計方式: C語言代表的過程性語言。

《機器學習》 周志華學習筆記第一 緒論(課後習題)

最近需要學習機器學習,有一點點基礎但是很少,希望能通過寫部落格的方式和大家交流以及學習達到共同進步的目的。 緒論 : 一、內容 1.基本術語 2.假設空間與版本空間 3.歸納偏好(常用的有奧卡姆剃刀) 沒有免費的午餐定理(No Free Lunch Theorem,

Android程式設計權威指南(第二版)學習筆記(二十五)—— 25 搜尋

本章主要講了 ToolBar 中的 SearchView 的使用以及 SharedPreferences 的簡單使用。 GitHub 地址: 完成第25章 1. SearchView SearchView 是一個 ActionVi

2011年軟考系統架構設計師學習筆記第一

1.1.1 系統架構師的概念   現代資訊系統“架構”三要素:構件、模式、規劃;規劃是架構的基石,也是這三個貢獻中最重要的。 架構本質上存在兩個層次:概念層,物理層。 1.2.1 系統架構師的定義   負責 理解、管理 並最終確認和評估 非功能性系統

LuceneInAction(2版)學習筆記——第一 初識Lucene

Lucene: 是一個搜尋類庫,而不是完整的程式 A. 索引元件 根據原始內容建立索引 Raw Content : Acquire Content    --> Build Document --> Analyze Document(*) --> I

dubbo學習筆記 第一 zookeeper安裝配置

       dubbo的實際使用中,基本都是使用zookeeper來管理它的服務,以及實現分散式呼叫。至於zookeeper是什麼,具有什麼使用者,大家可以百度搜索瞭解一下。實際生產環境中,zookeeper的應用服務數目,基本都是奇數個,這是由於它的選舉演算法決定的:z