安卓文件夾結構
⑴ android應用工程文件結構有哪些
在Eclipse中,一個基本的Android項目的目錄結構如圖所示。
1. src目錄--程序文件
在裡面保存了程序員辛辛苦苦直接編寫的程序文件。和一般的java項目一樣,src目錄下保存的是項目的所有包及源文件(.java),res目錄下包含了項目中的所有資源。例如,程序圖標(drawable)、布局文件(layout)和常量(values)等。不同的是,在Java項目中沒有gen目錄,也沒有每個Android項目都必須有的AndroidManifest.xml文件。
.java格式的文件是在建立項目時自動生成的,這個文件是只讀模式,不能更改。R.java文件是定義該項目所有資源的索引文件。
2. AndroidManifest.xml文件--設置文件
AndroidManifest.xml是一個控制文件,在裡麵包含了該項目中所使用的Activity、Service、Receiver
⑵ 與Android應用程序相關的文件目錄都有哪些
在搭建Android開發環境及簡單地建立一個HelloWorld項目後,本篇將通過HelloWorld項目來介紹Android項目的目錄結構。本文的主要主題如下:
1、HelloWorld項目的目錄結構
1.1、src文件夾
1.2、gen文件夾
1.3、Android 2.1文件夾
1.4、assets
1.5、res文件夾
1.6、AndroidManifest.xml
1.7、default.properties
圖1、HelloWorld項目目錄結構
下面將分節介紹上面的各級目錄結構。
1.1、src文件夾
顧名思義(src, source code)該文件夾是放項目的源代碼的。打開HelloWorld.java文件會看到如下代碼:
package helloworld.test; import android.app.Activity; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
可以知道:我們新建一個簡單的HelloWorld項目,系統為我們生成了一個HelloWorld.java文 件。他導入了兩個類android.app.Activity和android.os.Bundle,HelloWorld類繼承自Activity且重 寫了onCreate方法。
以下說明針對沒有學過Java或者Java基礎薄弱的人
@Override
在重寫父類的onCreate時,在方法前面加上@Override 系統可以幫你檢查方法的正確性。
例如,public void onCreate(Bundle savedInstanceState){…….}這種寫法是正確的,
如果你寫成public void oncreate(Bundle savedInstanceState){…….}這樣編譯器回報如下錯誤——
The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,
以確保你正確重寫onCreate方法。(因為oncreate應該為onCreate)
而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認為你新定義了一個方法oncreate。
android.app.Activity類:因為幾乎所有的活動 (activities)都是與用戶交互的,所以Activity類關注創建窗口,你可以用方法setContentView(View)將自己的UI放 到裡面。然而活動通常以全屏的方式展示給用戶,也可以以浮動窗口或嵌入在另外一個活動中。有兩個方法是幾乎所有的Activity子類都實現的:
onCreate(Bundle): 初始化你的活動(Activity),比如完成一些圖形的繪制。最重要的是,在這個方法里你通常將用布局資源(layout resource)調用setContentView(int)方法定義你的UI,和用findViewById(int)在你的UI中檢索你需要編程地 交互的小部件(widgets)。setContentView指定由哪個文件指定布局(main.xml),可以將這個界面顯示出來,然後我們進行相關 操作,我們的操作會被包裝成為一個意圖,然後這個意圖對應有相關的activity進行處理。
onPause():處理當離開你的活動時要做的事情。最重要的是,用戶做的所有改變應該在這里提交(通常ContentProvider保存數據)。
更多的關於Activity類的詳細信息此系列以後的文章將做介紹,如果你想了解更多請參閱相關文檔。
android.os.Bundle 類:從字元串值映射各種可打包的(Parcelable)類型(Bundle單詞就是捆綁的意思,所有這個類很好理解和記憶)。如該類提供了公有方法—— public boolean containKey(String key),如果給定的key包含在Bundle的映射中返回true,否則返回false。該類實現了Parceable和Cloneable介面,所以 它具有這兩者的特性。
1.2、gen文件夾
該 文件夾下面有個R.java文件,R.java是在建立項目時自動生成的,這個文件是只讀模式的,不能更改。R.java文件中定義了一個類——R,R類 中包含很多靜態類,且靜態類的名字都與res中的一個名字對應,即R類定義該項目所有資源的索引。看我們的HelloWorld項目是不是如此,如下圖:
圖2、R.java對應res
通過R.java我們可以很快地查找我們需要的資源,另外編繹器也會檢查R.java列表中的資源是否被使用到,沒有被使用到的資源不會編繹進軟體中,這樣可以減少應用在手機佔用的空間。
1.3、Android 2.1文件夾
該 文件夾下包含android.jar文件,這是一個Java 歸檔文件,其中包含構建應用程序所需的所有的Android SDK 庫(如Views、Controls)和APIs。通過android.jar將自己的應用程序綁定到Android SDK和Android Emulator,這允許你使用所有Android的庫和包,且使你的應用程序在適當的環境中調試。例如上面的HelloWorld.java源文件中 的:
import android.app.Activity; import android.os.Bundle;
這里兩行代碼就是從android.jar導入包。
1.4、assets
包含應用系統需要使用到的諸如mp3、視頻類的文件。
1.5、res文件夾
資源目錄,包含你項目中的資源文件並將編譯進應用程序。向此目錄添加資源時,會被R.java自動記錄。新建一個項目,res目錄下會有三個子目錄:drawabel、layout、values。
drawabel-?dpi:包含一些你的應用程序可以用的圖標文件(*.png、*.jpg)
layout:界面布局文件(main.xml)與WEB應用中的HTML類同,沒修改過的main.xml文件如下(HelloWorld的就沒有修改過):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
values:軟體上所需要顯示的各種文字。可以存放多個*.xml文件,還可以存放不同類型的數據。比如arrays.xml、colors.xml、dimens.xml、styles.xml
1.6、AndroidManifest.xml
項目的總配置文件,記錄應用中所使用的各種組件。這個文件列出了應用程序所提供的功能,在這個文件中,你可以指定應用程序使用到的服務(如電話服務、互聯網 服務、簡訊服務、GPS服務等等)。另外當你新添加一個Activity的時候,也需要在這個文件中進行相應配置,只有配置好後,才能調用此 Activity。AndroidManifest.xml將包含如下設置:application permissions、Activities、intent filters等。
HelloWorld項目的AndroidManifest.xml如下所示:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="helloworld.test" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloWorld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
關於AndroidManifest.xml現在就講這么多,此系列後面的文章將單獨詳細介紹。
1.7、 default.properties
記錄項目中所需要的環境信息,比如Android的版本等。
HelloWorld的default.properties文件代碼如下所示,代碼中的注釋已經把default.properties解釋得很清楚了:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
target=android-7
⑶ 安卓手機根目錄下的各個文件夾有什麼作用
作用:
1.res:資源文件。
2.drawable:布局文件。
3.layout:布局文件。
4.anim:動畫效果文件。
5.values:取值、字元串等。
6.src:代碼,至於src內部的目錄名稱,取決於具體項目結構。
7.libs:庫文件。
⑷ 安卓SD卡文件夾分別是什麼意思 文件夾功能介紹
2、Android:存放重要的程序數據,比如google:map的地圖緩存,誤刪掉後地圖還需重新下載。 3、backups:包含重要的備份文件,比如聯系人導出到SD卡會導入到此文件夾。 4、bugtogo:系統出現問題的時候會形成一些報告文件,存放在此文件夾。 5、data:緩存數據文件夾,與Android類似。例如,「截圖助手」截圖保存在data\com.edwardkim.android.screenshotitfull\screenshots里。 6、LOST.DIR:卡上丟失或出錯的文件會移動到這里,此目錄刪了會自動生成。 7、SystemAppBackup:SystemAppremove(深度卸載)備份系統文件後,備份文件保存的目錄。 8、bugreports:升級系統或刷機,系統和程序發生兼容錯誤報告列表(包括內存使用全部內容)將保存在這個文件,重起機器可以刪除。 9、.keepsafe:隱藏類的軟體、加密保存文件地址存放於此。 10、.thumbs:瀏覽或使用某一軟體,以及使用某一文件夾後用於記錄次數和內容的文件,隨機產生,需要定期不斷清除,長時間不清理會大量佔用儲存卡的有效空間。 11、openfeint:打開聯接網路後的一個啟動程序,它廣泛植入移動類平台發布的軟體或游戲,是更新下載或評論反饋信息的記錄地址,可刪除。 12、com:播放類軟體在收看播放影視節目生成的文件將存放於此,可以對製作方反映回饋信息,可以刪除。 13、Download(download):大寫字母的是網路聯接下載文件目錄,小寫字母的是手機自身(藍牙,近場等)存放下載傳輸文件,不要誤刪。 系統工具類——系統自帶工具相關文件夾1、albumart:音樂專輯封面的緩存文件夾。 2、albums:相冊縮略圖的緩存文件夾。 3、cmp:音樂的緩存文件夾。 4、Playlists:播放列表的緩存文件夾。 5、DCIM:相機隨機緩存文件夾,記錄功能設置的參數,需要及時清理。一些第三方相機軟體拍出的相片也會保存在這里,比如360或暈影相機等。 6、VPN:VPN數據的緩存目錄。 7、Mydocuments:手機啟用各種程序任務記錄的文檔,需要定期清除,長時間不清理會佔用SD卡較大內存。 8、.nomedia:手機中隱藏的音頻、圖片文件夾都會在這里顯示,可以自設在相關文件夾中。 9、media:使用電話通話錄音軟體或在線瀏覽視頻等媒體產生的音頻文件記錄存檔將保存在此。 10、.medieval_software:啟用藍牙傳輸軟體時,記錄任務保存文件的目錄。 11、extracted:解壓縮軟體默認的解壓目錄。
⑸ 安卓系統放在SD卡上的文件夾都有哪些呢
安卓系統下SD卡中有各種文件夾,但是相信很多朋友都不在知道這些文件夾到底是什麼,能否刪除呢?
1、.android_secure 是官方app2sd的產物,刪了之後裝到sd卡中的軟體就無法使用了。
2、.Bluetooth 顧名思義,用藍牙之後就會有這個。
3、.mobo 顧名思義,Moboplayer的緩存文件。
4、.QQ 顧名思義,QQ的緩存文件。
5、.quickoffice 顧名思義,quickoffice的緩存文件。
6、.switchpro 顧名思義,switchprowidget(多鍵開關)的緩存文件。
7、.ucdlres 顧名思義,UC迅雷的緩存文件。
8、albumart 音樂專輯封面的緩存文件夾。
9、albums 相冊縮略圖的緩存文件夾。
10、Android 比較重要的文件夾,裡面是一些程序數據,比如google map的地圖緩存。
11、backups 一些備份文件,比如聯系人導出到SD卡時會導入到此文件夾。
12、 顧名思義,掌上網路、網路輸入法之類程序的緩存文件夾。
13、bugtogo 系統出現問題的時候會形成一些報告文件,存放於此文件夾。
14、cmp 個人初步判斷是音樂的緩存文件夾。
15、data 同樣是緩存數據的文件夾,與Android性質類似。
16、DCIM 相機的緩存文件夾。
17、documents DocumentsTo Go的相關文件夾。
18、etouch 易行的緩存文件夾。
19、extracted androzip等解壓縮軟體默認的解壓目錄。
20、gameloft 顧名思義,gameloft游戲數據包存放的文件夾。
21、handcent 顧名思義handcent(超級簡訊)數據文件夾。
22、handyCurrency 貨幣匯率相關的文件夾,裝了handycalc(科學計算器)之後才會有。
23、ireader 顧名思義,ireader的緩存文件夾。
24、KingReader 顧名思義,開卷有益的緩存文件夾。
25、LazyList Applanet(黑市場)的緩存目錄,也許和其他程序也有關,暫時不太清楚。
26、LOST.DIR卡上丟失或出錯的文件會跑這里,此目錄無用,刪了會自動生成。
27、moji 顧名思義,墨跡天氣的緩存目錄。
28、MusicFolders poweramp產生的緩存文件夾。
29、openfeint 顧名思義,openfeint的緩存文件夾。
30、Picstore 圖片瀏覽軟體建立的一個目錄。
31、Playlists 播放列表的緩存文件夾。
32、renren 顧名思義,人人網客戶端的緩存文件夾。
33、screenshot 截屏圖片保存的目錄,screenshot這個軟體的。
34、ShootMe顧名思義,shootme截屏後圖片文件保存的目錄。
35、SmartpixGames SmartpixGames出品游戲的緩存文件夾,比如Jewellust。
36、sogou 顧名思義,搜狗拼音的緩存文件夾。
37、SpeedSoftware RE文件管理器的緩存文件夾。
38、SystemAppBackupSystemApp remove(深度卸載)備份系統文件後,備份文件保存的目錄。
39、TalkingFriends talkingtom(會說話的tom貓)錄制的視頻文件所保存的目錄。
40、Tencent 顧名思義,騰訊軟體的緩存目錄,比如QQ。(與上面的.QQ文件夾並不相同)
41、TitaniumBackup 顧名思義,鈦備份備份的程序所保存的目錄。
42、TunnyBrowser 感覺是海豚瀏覽器的緩存目錄,但不知道為什麼叫這個名字,金槍魚瀏覽器
43、UCDLFiles UC迅雷下載文件的保存目錄。
44、UCDownloads UC瀏覽器下載文件的保存目錄。
45、VIE Vignette(暈影相機)的緩存目錄。
46、yd_historys You 有道詞典搜索歷史的緩存目錄。
47、yd_speech 有道詞典單詞發音的緩存目錄。
48、youmicache 刪掉後還會自動生成,悠米廣告的緩存目錄,廣告程序內嵌在其他程序中。
49、新建文件夾 檢查下是不是你自己放什麼圖的文件夾。
50、sina 新浪微博
51、playnow 索尼愛立信的在線商店playnow
52、PlayerPro 好評最多的音樂播放器
53、Mcdonalds 手機里的Mcdonalds軟體的緩存,刪除後,軟體要重新聯網下載才能使用。不建議刪除。
54、mhc 手機里裝了偷拍軟體後,偷拍後的文件就在這里。
55、sgsupdate 三國殺 的升級文件的安裝包就在這里。
56、bluetooth手機藍牙接收的文件默認在這里。
相信現在大家對安卓系統下SD卡各種文件夾應該都有所了解了吧,所以一定要慎重刪除這些文件夾哦.
⑹ android app文件目錄結構
原來,只要把文件寫在這里的話,可以不用動態申請許可權,只要在manifest裡面聲明許可權就ok了;
應用程序在運行的過程中如果需要向手機上保存數據,一般是把數據保存在SDcard中的。
大部分應用是直接在SDCard的根目錄下創建一個文件夾,然後把數據保存在該文件夾中。
這樣當該應用被卸載後,這些數據還保留在SDCard中,留下了垃圾數據。
並且在API
6.0之後,根目錄文件存儲是需要用戶授權的,就算你在AndroidManifest.xml中配置了存儲許可權,用戶不授權也是寫不進去了。
SD卡讀寫許可權:
如果你想讓你的應用被卸載後,與該應用相關的數據也清除掉,該怎麼辦呢?
通過
可以得到
這個目錄裡面,一般放一些長時間保存的數據
方法可以獲取到 SDCard/ Android /data/你的應用的包名/files/ 目錄,一般放一些長時間保存的數據
通過
方法可以獲取到
如果使用上面的方法,當你的應用在被用戶卸載後,SDCard/Android/data/你的應用的包名/ 這個目錄下的所有文件都會被刪除,不會留下垃圾信息。並且
這個方法獲得的文件存儲路徑適用於6.0以後系統,只要AndroidManifest.xml配置讀寫許可權了,就不需要用戶再授權了。
正常開發中獲取存儲路徑的方法是:
可以看到,當SD卡存在或者SD卡不可被移除的時候,就調用getExternalCacheDir()方法來獲取緩存路徑,否則就調用getCacheDir()方法來獲取緩存路徑。前者獲取到的就是 /sdcard/Android/data/<application package>/cache 這個路徑,而後者獲取到的是 /data/data/<application package>/cache 這個路徑。
設置->應用->應用詳情裡面的」清除數據「與」清除緩存「選項分別對應的是data/data/<application package>/和data/data/<application package>/cache
external storage (外部存儲):
Environment.getExternalStorageDirectory()SD根目錄:/mnt/sdcard/ (6.0後寫入需要用戶授權)
context.getExternalFilesDir(dir)路徑為:/mnt/sdcard/Android/data/< package name >/files/…
context.getExternalCacheDir()路徑為:/mnt/sdcard//Android/data/< package name >/cache/…
internal storage(內部存儲):
context.getFilesDir()路徑是:/data/data/< package name >/files/…
context.getCacheDir()路徑是:/data/data/< package name >/cach/…