編輯:Android編程入門
Android項目具有其自身的結構規范,完好的遵循結構規范,可以讓開發事半功倍。下圖分別從Android視圖和Project視圖展示了Android項目的項目結構:
圖中左側是Android視圖,右側是Project視圖。從兩個結構圖的對比,可以發現Android視圖更加關注Android開發工作,而Project視圖更加關注整體結構,雖然兩個視圖有一些不同,但主體結構並沒有什麼區別。
接下來,主要通過Android視圖,描述一下Android項目中各個目錄的用途和含義,明白Android視圖中各目錄的用戶和含義後,找到Project視圖中的對應目錄就不是什麼難事兒了。
APP:Android項目代碼,通常的編碼工作都在這裡進行。
manifests:存放AndroidManifest.xml文件,此文件是Android項目中的配置清單文件。因為Android項目的模型是一個父類調用子類的模型,簡單來說,這個模型是由開發者繼承Android系統提供的父類來實現App自己的子類,然後Android系統在核實的時候去調用開發者實現的App。所以這個配置清單文件就十分重要,只有通過這個文件,Android系統才知道開發者的應用裡到底有些什麼內容,開發者要在此文件中申明應用包含的組件。
java:存放Android項目中的java代碼。
<包名>:存放java代碼。
<包名>(androidTest):存放Android 測試代碼。
<包名>(test):存放Unit測試代碼。
res:存放Android項目所需資源文件。
drawable:存放圖片資源文件,在Android系統中,Google推薦使用png格式的圖片資源,在此目錄下,不同屏幕密度的同名圖片資源將以文件夾格式顯示。
layout:存放布局資源文件,在此目錄下,不同屏幕尺寸的同名布局資源將以文件夾格式顯示。
menu:存放菜單資源文件,在此目錄下,不同屏幕尺寸的同名菜單資源將以文件夾格式顯示。
mipmap:存放圖片資源文件,約等同於drawable目錄,此目錄在Android 4.2版本被引入,Android對此目錄中的圖片資源提供了更好的縮放性能。
values:存放值資源,在此目錄下,同名同類型的資源將以文件夾格式顯示。
colors.xml:圖片資源文件
dimens.xml:距離資源文件
string.xml:字符串資源文件
style.xml:樣式資源文件
Gradle:Android項目構建文件,存放Gradle構建文件以及其他配置文件。
在Android系統中,存在著各式各樣的屏幕尺寸和各式各樣的系統版本。也就是人們所說的碎片化嚴重。針對這個問題,Google其實已經提供了非常完好的技術支持。比如:
在Android設備上,關於屏幕有兩個參數,一個是尺寸,如4.7寸,5.2寸,一個是分辨率,如768 x 1280, 480 x 800。尺寸表示屏幕的物理大小,分辨率表示屏幕的像素點數量,3.8寸屏幕具有768 x 1280的分辨率和7寸屏幕具有768 x 1280的分辨率,顯然顯示效果是不同的。這個不同就是因為屏幕密度引起的,簡單的可以把屏幕密度理解為單位面積上像素點的數量。
以圖片資源為例,Andorid提供了針對不同屏幕密度的圖片適配支持,只需要對目標資源文件夾進行不同的命名就可以簡單實現。下面列舉出了常用的圖片適配支持:
drawable:通用圖片資源目錄
drawable-nodpi:不需要縮放的圖片資源目錄
drawable-ldpi:低屏幕密度圖片資源
drawable-mdpi:中屏幕密度圖片資源
drawable-hdpi:高屏幕密度圖片資源
drawable-xhdpi:超高屏幕密度圖片資源,在這之上還有(drawable-xxhdpi,drawable-xxxhdpi)
除了對屏幕密度提供了完好支持,Android系統也對屏幕尺寸提供了完好吃吃,以布局文件為例:
layout:通用布局文件資源
layout-land:寬屏布局文件資源
layout-small:小屏幕布局文件資源
layout-w820dp:屏幕寬度為820dp的布局文件資源
Android系統作為全球智能設備占有率最高的系統,對多語言的支持自然必不可少,以值資源文件為例:
values:通用值資源
values-es.xml:西班牙語言環境值資源
values-zh.xml:簡體中文語言環境值資源
為了解決系統碎片化,那麼多系統版本的支持自然必不可少,以值資源文件為例;
values:通用值資源
values-v21.xml:Android 5.0及以上版本的值資源
很多Android初學者總是不明白在Android系統中的度量單位,下面對一些常見的度量單位進行解釋:
dp:可以簡單理解為屏幕密度,1dp在高屏幕密度和低屏幕密度的設備上的表現是不同的,為了尺寸能隨屏幕密度的變動而變動,一直保持與屏幕的比例,通常來說都建議只用dp作為度量單位。
dip:等同於dp,只是換了一個馬甲而已。
sp:可以簡單理解為絕對的像素,sp不隨屏幕密度的變化而變化,在不同設備間一直保持固定大小,對於希望保持固定大小的內容,可以使用sp作為度量單位,例如在小屏幕上對文字使用dp,可能因為屏幕過小,而導致文字等比縮放後,文字過小而無法閱讀的情況,這時候,使用sp將保持文字在不同設備上的大小是一致的.
px:忘記這個在web開發中最常用到的單位吧,在Android系統中,它是不被推薦使用的,所以它的含義,也就不解釋了,希望所有Android開發者都能忘掉它。
歡迎轉載,轉載同時請尊重版權,附上本文原文鏈接:點擊這裡
==============================
更多內容,歡迎查看本人博客:何問起的博客
==============================
Android 意圖(Intent)和過濾器(Filter)Android意圖是一個要執行的操作的抽象描述。它可以通過 startActivity 來啟動
前言 這是“基礎自測”系列的第三篇文章,以Android開發需要熟悉的20個技術點為切入點,本
ImageView1.什麼是ImageView是顯示圖片的一個控件2.ImageView屬性android:src ImageView的內容顏色 an
阿裡客戶端工程師試題簡析——Android應用的閃退(crash)分析1. 問題描述 閃退(Crash)是客戶端程序在運行時遭遇無法處理的異常或