真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android目錄結(jié)構(gòu),android根目錄結(jié)構(gòu)

android studio怎么展開目錄結(jié)構(gòu)

一、下載安裝 下載后,打開并將Android Studio拖動到Applications中去,拷貝完畢即可,可以到應(yīng)用程序下將圖標(biāo)拖動到Dock上。二、新建工程 安裝完成后,選擇默認(rèn)選項點(diǎn)擊OK即可:進(jìn)入Android Studio,開始界面和Xcode有點(diǎn)類似,點(diǎn)擊New project新建一個工程,新建過程和在Eclipse上差不多。新建工程完畢后就進(jìn)入了Android Studio主界面。第一次進(jìn)去可能什么也沒有,點(diǎn)擊箭頭所示按鈕目錄結(jié)構(gòu),后可以看到Android Studio的目錄結(jié)構(gòu),和Eclipse的工程還是有一點(diǎn)區(qū)別的:區(qū)別: 1.Android Studio的目錄結(jié)構(gòu)本來就代表一個workspace,一個workspace里面可以有Module,可以將一個Module理解成Eclipse中的一個Project; 2.目錄中將java代碼和資源文件(圖片、布局文件等)全部歸結(jié)為src,在src目錄下有一個main的分組,同時劃分出java和res兩個Group,res和Eclipse下的結(jié)構(gòu)一樣,java下就是源碼的包和類文件; 3.新建文件方式的不同,右鍵選擇New或Command+N后出現(xiàn)新建菜單,類型有Java Class,也就是一般的java類,F(xiàn)ile就是普通文件,Package就是建包,值得注意的就是Android Component,它直接提供了Android中基本組件的創(chuàng)建??梢赃x擇創(chuàng)建Android中不同類型的組件:三、窗口布局及主題介紹 另外,主界面底部有一個名為Android的選項卡,打開可以看到DDMS中的設(shè)備信息和Logcat輸出:頂部工具欄中可以看到和Eclipse中功能一樣的一個選項,這些相信大家都比較熟悉了:最后需要說明的是,大家看到我的主界面是暗色風(fēng)格,和Google演示的是一樣的風(fēng)格,大家第一次使用打開的是默認(rèn)風(fēng)格(亮色),如果想要修改的話,進(jìn)入Preferences(按Command+,)到IDE Settings下選擇Colorsfont并設(shè)置Schema name為Darcula就可以設(shè)置成暗色風(fēng)格,如果需要自己定義樣式,比如字體大小顏色等,可以新建一個Schema來自己定義四、布局文件編寫(實時預(yù)覽) 最炫的功能要來了,實時編寫并預(yù)覽布局文件,此項功能著實大大提高開發(fā)效率,打開一個xml布局文件點(diǎn)擊右側(cè)Preview選項卡即可喚出預(yù)覽界面,可以選擇很多尺寸的手機(jī)進(jìn)行預(yù)覽:同時,還可以同時預(yù)覽多種不同型號和尺寸的設(shè)備,編寫代碼的同時適配多種機(jī)型,這不就是當(dāng)初夢寐以求的嘛!上面介紹了Android Studio的基本使用,包括安裝、新建工程、工程結(jié)構(gòu)以及主題設(shè)置。下面介紹一些其他技巧,以及與Eclipse之前的一些對比。需要重申一下,我所有的操作與版本是基于Mac系統(tǒng),在Windows上的同學(xué)基本類似,下面就分主題開始吧: 一、從Eclipse導(dǎo)入工程到Android Studio 根據(jù)官方的介紹,Android Studio可以兼容Eclipse的現(xiàn)有工程,但需要做一些操作: 首先升級ADT到最新版本,目前為版本號為22(注意和ADT相關(guān)的組件最好一并升級,避免后期可能出現(xiàn)的錯誤) 選擇需要從Eclipse導(dǎo)出的工程,右鍵選擇Export并選擇Android下的Generate Gradle Build Files 選擇完畢后并不會導(dǎo)出到其他地方,而是在本地工程生成了一個build.gradle文件,在Eclipse工程中也可以看到,這個文件是Android Studio識別的 3.隨后進(jìn)入Android Studio并選擇Import Project,可以看到剛剛在Eclipse中的項目圖標(biāo)變成了一個Android機(jī)器人圖標(biāo),說明轉(zhuǎn)換成功,這時候選擇工程導(dǎo)入即可:至此,就完成了從Eclipse導(dǎo)入現(xiàn)有Android工程到Android Studio,現(xiàn)在可以開始對工程進(jìn)行操作了! 二、Eclipse工程與Android Studio的區(qū)別 Eclipse工程可以導(dǎo)入Android Studio運(yùn)行,而反過來在Android Studio建立的工程不能在Eclipse中運(yùn)行; 二者的工程結(jié)構(gòu)不一樣,在Eclipse中一個Project就代表一個項目工程,而在Android Studio中就和Intellij一樣,一個Project代表一個工作空間,相當(dāng)于Eclipse中的workspace,而在Android Studio中一個Module就相當(dāng)于Eclipse中的一個Project,這個概念需要弄明白,不要混了或覺得糊涂了。 在編輯操作上,在Eclipse中編輯修改后必須手動command+s保存文件,而在Android Studio中就和Intellij一樣是自動保存的,這一點(diǎn)和第二點(diǎn)和Xcode也是類似的。 工程目錄上的區(qū)別,在Eclipse中src部分一般是java文件,res部分是資源文件,包括布局文件和多媒體資源等。在Android Studio中包括java文件和資源文件全部放到了src目錄下,src目錄下包括一個main文件夾,再下面就是java文件夾和res文件夾,其實這里,java文件夾就相當(dāng)于Eclipse中的src,res還是那個res,這里想起了本山老師的小品“src已經(jīng)不是那個src了,res還是那個res” 三、真機(jī)運(yùn)行以及常用快捷鍵 在Android Studio中點(diǎn)擊界面下方的Android選項卡可以看到Device信息和Logcat,連上設(shè)備后打開Android選項卡會檢測真機(jī),成功后會顯示在Device中,點(diǎn)擊頂部的綠色小箭頭就可以開始運(yùn)行工程了。有一點(diǎn)需要注意的是,運(yùn)行時可以選擇模擬器也可以選擇真機(jī),由于在Android Studio中運(yùn)行工程的時候有一個Device優(yōu)先級選擇,如果不設(shè)置的話可能會出現(xiàn)只運(yùn)行在模擬器上的現(xiàn)象,我們可以自行設(shè)置一下:先點(diǎn)擊Run菜單選擇Run Configuration,并選擇你想選擇的目標(biāo)設(shè)備,可以是模擬器和真機(jī),也可以在運(yùn)行選由用戶選擇: 快捷鍵大家可以對照官方文檔進(jìn)行熟悉,如下表,也可以自己修改配置選項進(jìn)行自定義: 個人覺得Android Studio還是有一定的前景的,這里就需要Google不斷進(jìn)行完善和改進(jìn)了,趕緊把大家從Eclipse中解救出來吧。另外,在此期間,大家其實可以嘗試使用一下Intellij IDEA,這個默認(rèn)也是集成Android開發(fā)環(huán)境的。Android Studio是基于前者改進(jìn)而來,二者在使用上差不多,也是Eclipse的一個不錯的替代者。

成都服務(wù)器托管,創(chuàng)新互聯(lián)提供包括服務(wù)器租用、眉山聯(lián)通機(jī)房、帶寬租用、云主機(jī)、機(jī)柜租用、主機(jī)租用托管、CDN網(wǎng)站加速、國際域名空間等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:18980820575

Android工程的目錄結(jié)構(gòu)詳細(xì)信息?

res:放置應(yīng)用 程序 用到的資源 文件。其包含(Drawable,layout,values等目錄)。當(dāng)這個目錄下的文件發(fā)生變化時,src目錄下面的R.java就會自動發(fā)生變化。

assets:主要放置多媒體等數(shù)據(jù) 文件 。

res/drawable:放置應(yīng)用到的圖片資源。

res/layout:放置一些與UI相應(yīng)的布局文件,都是xml文件。

res/values:放置字符串,顏色,數(shù)組等常量數(shù)據(jù)。

AndroidManifest.xml:相當(dāng)于應(yīng)用的配置文件。在此文件里必須聲明應(yīng)用的名稱,應(yīng)用所用到的Activity,Service ,Reveiver等。

Android Studio開發(fā)解讀 - gradle編譯項目的build目錄結(jié)構(gòu)

轉(zhuǎn)自:

本文針對android studio工具下的ndk開發(fā)。

build目錄就是項目模塊構(gòu)建過程和結(jié)果使用到的位置。

項目根目錄下有一個build目錄。

項目根目錄下各模塊子目錄下各自有一個build目錄。

build目錄下一般由4個子目錄組成:

generated由aapt工具根據(jù)資源數(shù)據(jù)自動生成的java類

intermediates中間過程

outputs輸出結(jié)果

tmp編譯日志

根目錄下的build目錄,這個build服務(wù)于整個項目,在本文中稱其做項目build,以區(qū)分模塊build。

項目build一般只有g(shù)enerated和intermediates兩個子目錄,用于生成這個項目的buildTools。

generated目錄會生成一個mockable-android-${buildToolsVersion}.jar。

intermediates目錄根據(jù)需要生成dex-cache,這個目錄下的xml文件配置jar包在編譯過程中如何緩沖使用。

模塊build目錄在make module ${MOD_NAME}后就會生成4個子目錄。

我們來看intermediates目錄,中間生成和編譯過程使用到的目錄。

這個目錄下有這么幾個比較關(guān)心的子目錄:

binaries? ? ? ? ? ? ? ? ? NDK,生成c++連接庫

bundles? ? ? ? ? ? ? ? ? 模塊鏈接到的自定義jar包和各abi版本的c++鏈接庫都捆綁在這里

classes模塊中生成的自定義java類

exploded-aar ? ? ? ? ?由aar包解壓出來的資源,jar包和so鏈接文件等。用于本模塊的鏈接和集成。

jniLibs? ? ? ? ? ? ? ? ? ?在build.grade中你指定的jniLibs目錄整個拷貝。模塊鏈接到的庫文件會被捆到bundles目錄。

objectFiles? ? ? ? ? ? ? NDK,生成c++中間對象(.o)文件。

transforms? ? ? ? ? ? ? 根據(jù)你當(dāng)前選擇的productFlavor和其包含的abiFilter,從bundles和binaries取出鏈接庫。

接著就是output目錄:

aar如果模塊是android library

jar ? ? ? ? ? ? ? ? ? ? ? ? 如果模塊是java library

apk ? ? ? ? ? ? ? ? ? ? ? ?如果是Activity應(yīng)用程序

最后就是tmp目錄:

compile$(NDK_Module)$(ABI)$(BUILD_TYPE)$(PRODUCT_FLAVOR)MainCpp ? ? ? ? ? ? ? ndk編譯日志

link$(NDK_Module)$(ABI)$(BUILD_TYPE)$(PRODUCT_FLAVOR)$(LIB_TYPE)? ? ? ? ? ? ? ? ndk鏈接日志

編譯的子目錄由三要素組合而成,分別是

BUILD_TYPE := debug|release

ProductFlavor := 你在gradle文件中創(chuàng)建的flavor

abiFilter :=

逆向深入objc,c++ windows下仿objc動畫層UI引擎

安卓內(nèi)部外部文件存儲

總述

覺得十分有必要搞清楚內(nèi)存,內(nèi)部存儲和外部存儲的區(qū)別,還有我們在開發(fā)中真正將數(shù)據(jù)存在了手機(jī)的哪兒。

先提一個問題:手機(jī)設(shè)置的應(yīng)用管理中,每個App下都有清除數(shù)據(jù)和清除緩存,清除的分別是哪里的數(shù)據(jù)?

一 內(nèi)存,內(nèi)部存儲和外部存儲

整個存儲空間分為內(nèi)部存儲和外部存儲兩部分,內(nèi)部存儲中又包含RAM和ROM等部分。

內(nèi)部存儲,即InternalStorage,也常說內(nèi)置存儲卡,這是手機(jī)內(nèi)置的存儲空間,出廠時就被確定,是手機(jī)的一個硬件指標(biāo)。類比電腦的內(nèi)存。

外部存儲,即ExternalStorage,也常說外置存儲卡,手機(jī)出廠時并不存在,是由用戶自由擴(kuò)展的存儲空間,常見的就是SD卡。類比電腦的外接移動硬盤。

RAM,即常說的運(yùn)行時內(nèi)存,是手機(jī)運(yùn)行時存儲數(shù)據(jù)和指令的地方,注意是運(yùn)行時內(nèi)存。類比電腦的內(nèi)存條。

ROM,用來存放一些系統(tǒng)文件,應(yīng)用配置和其他數(shù)據(jù)的地方,是內(nèi)部存儲中主要存儲區(qū)域。類比于Windows電腦的C盤。

上圖中運(yùn)行內(nèi)存即RAM,共2G,機(jī)身存儲即內(nèi)部存儲,共8G。

打開手機(jī)的文件管理,再點(diǎn)擊手機(jī)一項,可以看到下圖:

上圖中箭頭所指的地方,可以進(jìn)行內(nèi)部存儲與外部存儲的切換,當(dāng)前頁為內(nèi)部存儲下的展示,這只是Android系統(tǒng)存儲數(shù)據(jù)的一部分而已,大部分?jǐn)?shù)據(jù)都對用戶隱藏。至于紅框部分下面繼續(xù)講。

二 詳說存儲

一般來說,App軟件大都安裝在內(nèi)部存儲的ROM區(qū),當(dāng)然現(xiàn)在也有辦法安裝在SD卡上,但這需要App自身支持及SD卡分區(qū)等一系列操作,下面討論的App是安裝在ROM區(qū)的。

以Genymotion模擬器設(shè)備為例來分析,型號是三星GalaxyS5。直接使用AndroidStudio的DDMS,打開File Explorer,我們可以看到下圖:

這張圖是手機(jī)根目錄下的完整目錄結(jié)構(gòu)圖,內(nèi)外部存儲均包含在內(nèi)。不過有些文件內(nèi)容需要root權(quán)限才能看到。

上面展示的內(nèi)部存儲圖就是其中一部分子目錄。

選其中幾個重要的文件夾介紹。

2.1 /data包:主要存儲手機(jī)應(yīng)用的相關(guān)數(shù)據(jù)。

如上圖的二級目錄中,/data/app文件夾下存放三方應(yīng)用的apk文件;/data/data文件夾下存放系統(tǒng)應(yīng)用和三方應(yīng)用的包私有數(shù)據(jù),每個應(yīng)用都有獨(dú)屬于自己的包。

選一個三方應(yīng)用包——com.X.main,來分析三級目錄——/data/data/com.X.main下都有什么數(shù)據(jù):

由包名不難看出:cache包存放緩存數(shù)據(jù),databases包存放使用SQLite存儲的數(shù)據(jù),files包存放普通數(shù)據(jù)(log數(shù)據(jù),json型數(shù)據(jù)等),shared_prefs包存放使用SharedPreference存放的數(shù)據(jù)。這些包都是由系統(tǒng)創(chuàng)建的。

2.2 /mnt/sdcard/storage包:這三個包,與手機(jī)的部分內(nèi)置存儲卡數(shù)據(jù)和外置存儲卡數(shù)據(jù)有關(guān)。

上面的完整目錄結(jié)構(gòu)圖中有其子目錄信息展示。

以內(nèi)置存儲卡來說,通常用sdcard0表示:Android4.1上,首先掛載到目錄/storage/sdcard0上面,/sdcard和/mnt/sdcard都只是指向/storage/sdcard0的軟鏈接;Android4.2上,首先掛載到目錄/storage/emulated/0(0就表示內(nèi)置存儲)上面,為兼容之前版本,又掛載到/storage/emulated/legency上面,/storage/sdcard0、/sdcard和/mnt/sdcard都只是指向/storage/emulated/legency的軟鏈接。(掛載相當(dāng)于真正位置,軟鏈接相當(dāng)于指針)。

/mnt/sdcard是Android2.2及之上版本使用,/sdcard是Android2.1及之下版本使用。

在手機(jī)的文件管理中看到的內(nèi)置存儲卡文件,如上面文件管理頁面的圖,就是/storage/emulated /0包的子目錄,Android包的路徑就是:/storage/emulated/0/Android。

2.3 其他

/dev包:Linux系統(tǒng)的常規(guī)文件夾。

/system包:系統(tǒng)配置的文件夾,比如Android系統(tǒng)框架(framework)、底層類庫(lib)、字體(font)等。

三 存儲相關(guān)操作

在Android開發(fā)中,我們常打交道的存儲空間有三部分。

一是根目錄下路徑為 /data/data/包名/XX 的文件。開發(fā)中SQLite數(shù)據(jù)、SharedPreference數(shù)據(jù)均保存在這里,雖說我們可以讀寫操作,但這部分空間由系統(tǒng)維護(hù)。

二是在外置存儲卡上做存儲。暫時不講。

三是在內(nèi)置存儲卡中做存儲。在/storage/emulated/0/Android/data包下或與/storage/emulated/0/Android包同級目錄上,建立App包存儲數(shù)據(jù),這部分空間均由開發(fā)者維護(hù)。區(qū)別在于/storage/emulated/0/Android/data包下的數(shù)據(jù)為私有目錄數(shù)據(jù),會隨App卸載被清除,與/storage/emulated/0/Android包同級的數(shù)據(jù)(如系統(tǒng)目錄DCIM包,DOWNLOWN包和bluetooth包,還有下圖中的baidu包)屬于公有目錄數(shù)據(jù),不會隨App卸載被清除,這就會造成數(shù)據(jù)的卸載殘留。

Google官方建議開發(fā)者將App的數(shù)據(jù)存儲在私有目錄即/storage/emulated/0/Android/data包下,這樣卸載App時數(shù)據(jù)會隨之被系統(tǒng)清除,不會造成數(shù)據(jù)殘留。

對存儲空間進(jìn)行操作,首先要獲取存儲空間的存儲路徑,對此Android提供了Environment類和Context類來獲取路徑。

就上面對存儲空間的劃分,第一部分空間對用戶不可見,是在具體包名下的,和特定的App有關(guān),所以對這些數(shù)據(jù)的訪問需調(diào)用Context類中的方法;第三部分空間對用戶可見,私有目錄數(shù)據(jù)仍與特定App有關(guān),需調(diào)用Context類中的方法,而公有目錄數(shù)據(jù)與App無關(guān),應(yīng)調(diào)用Environment類中的方法。

總結(jié)如下圖:

寫了個小程序?qū)nvironment類和Context類相關(guān)方法測試,如下圖:(冒號前為方法名,冒號后為輸出結(jié)果)

四 回答最初提出的問題

手機(jī)設(shè)置的應(yīng)用管理中,每個App下都有清除數(shù)據(jù)和清除緩存,清除的分別是哪里的數(shù)據(jù)?

還是用上面的Genymotion模擬器設(shè)備來分析,主要測試三部分?jǐn)?shù)據(jù):

內(nèi)部數(shù)據(jù):/data/data/包名/XXX

外部私有數(shù)據(jù):/storage/emulated/0/Android/data/包名/XXX

外部公有數(shù)據(jù):/storage/emulated/0/包名/XXX

測試結(jié)果圖就不上了,直接上結(jié)論:

清除緩存:將外部私有數(shù)據(jù)下的cache包(/storage/emulated/0/Android/data/包名/cache)清除,將內(nèi)部數(shù)據(jù)下的cache包下的內(nèi)容(/data/data/包名/cache/XXX)清除 。

清楚數(shù)據(jù):將外部私有數(shù)據(jù)包(/storage/emulated/0/Android/data/包名)清除,將內(nèi)部數(shù)據(jù)下的所有內(nèi)容(/data/data/包名/XXX)清除;

而兩種操作對外部公有數(shù)據(jù)均無影響。

與Android應(yīng)用程序相關(guān)的文件目錄都有哪些

在搭建Android開發(fā)環(huán)境及簡單地建立一個HelloWorld項目后,本篇將通過HelloWorld項目來介紹Android項目的目錄結(jié)構(gòu)。本文的主要主題如下:

1、HelloWorld項目的目錄結(jié)構(gòu)

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項目目錄結(jié)構(gòu)

下面將分節(jié)介紹上面的各級目錄結(jié)構(gòu)。

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項目,系統(tǒng)為我們生成了一個HelloWorld.java文 件。他導(dǎo)入了兩個類android.app.Activity和android.os.Bundle,HelloWorld類繼承自Activity且重 寫了onCreate方法。

以下說明針對沒有學(xué)過Java或者Java基礎(chǔ)薄弱的人

@Override

在重寫父類的onCreate時,在方法前面加上@Override 系統(tǒng)可以幫你檢查方法的正確性。

例如,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應(yīng)該為onCreate)

而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認(rèn)為你新定義了一個方法oncreate。

android.app.Activity類:因為幾乎所有的活動 (activities)都是與用戶交互的,所以Activity類關(guān)注創(chuàng)建窗口,你可以用方法setContentView(View)將自己的UI放 到里面。然而活動通常以全屏的方式展示給用戶,也可以以浮動窗口或嵌入在另外一個活動中。有兩個方法是幾乎所有的Activity子類都實現(xiàn)的:

onCreate(Bundle): 初始化你的活動(Activity),比如完成一些圖形的繪制。最重要的是,在這個方法里你通常將用布局資源(layout resource)調(diào)用setContentView(int)方法定義你的UI,和用findViewById(int)在你的UI中檢索你需要編程地 交互的小部件(widgets)。setContentView指定由哪個文件指定布局(main.xml),可以將這個界面顯示出來,然后我們進(jìn)行相關(guān) 操作,我們的操作會被包裝成為一個意圖,然后這個意圖對應(yīng)有相關(guān)的activity進(jìn)行處理。

onPause():處理當(dāng)離開你的活動時要做的事情。最重要的是,用戶做的所有改變應(yīng)該在這里提交(通常ContentProvider保存數(shù)據(jù))。

更多的關(guān)于Activity類的詳細(xì)信息此系列以后的文章將做介紹,如果你想了解更多請參閱相關(guān)文檔。

android.os.Bundle 類:從字符串值映射各種可打包的(Parcelable)類型(Bundle單詞就是捆綁的意思,所有這個類很好理解和記憶)。如該類提供了公有方法—— public boolean containKey(String key),如果給定的key包含在Bundle的映射中返回true,否則返回false。該類實現(xiàn)了Parceable和Cloneable接口,所以 它具有這兩者的特性。

1.2、gen文件夾

該 文件夾下面有個R.java文件,R.java是在建立項目時自動生成的,這個文件是只讀模式的,不能更改。R.java文件中定義了一個類——R,R類 中包含很多靜態(tài)類,且靜態(tài)類的名字都與res中的一個名字對應(yīng),即R類定義該項目所有資源的索引??次覀兊腍elloWorld項目是不是如此,如下圖:

圖2、R.java對應(yīng)res

通過R.java我們可以很快地查找我們需要的資源,另外編繹器也會檢查R.java列表中的資源是否被使用到,沒有被使用到的資源不會編繹進(jìn)軟件中,這樣可以減少應(yīng)用在手機(jī)占用的空間。

1.3、Android 2.1文件夾

該 文件夾下包含android.jar文件,這是一個Java 歸檔文件,其中包含構(gòu)建應(yīng)用程序所需的所有的Android SDK 庫(如Views、Controls)和APIs。通過android.jar將自己的應(yīng)用程序綁定到Android SDK和Android Emulator,這允許你使用所有Android的庫和包,且使你的應(yīng)用程序在適當(dāng)?shù)沫h(huán)境中調(diào)試。例如上面的HelloWorld.java源文件中 的:

import android.app.Activity; import android.os.Bundle;

這里兩行代碼就是從android.jar導(dǎo)入包。

1.4、assets

包含應(yīng)用系統(tǒng)需要使用到的諸如mp3、視頻類的文件。

1.5、res文件夾

資源目錄,包含你項目中的資源文件并將編譯進(jìn)應(yīng)用程序。向此目錄添加資源時,會被R.java自動記錄。新建一個項目,res目錄下會有三個子目錄:drawabel、layout、values。

drawabel-?dpi:包含一些你的應(yīng)用程序可以用的圖標(biāo)文件(*.png、*.jpg)

layout:界面布局文件(main.xml)與WEB應(yīng)用中的HTML類同,沒修改過的main.xml文件如下(HelloWorld的就沒有修改過):

?xml version="1.0" encoding="utf-8"? LinearLayout xmlns: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文件,還可以存放不同類型的數(shù)據(jù)。比如arrays.xml、colors.xml、dimens.xml、styles.xml

1.6、AndroidManifest.xml

項目的總配置文件,記錄應(yīng)用中所使用的各種組件。這個文件列出了應(yīng)用程序所提供的功能,在這個文件中,你可以指定應(yīng)用程序使用到的服務(wù)(如電話服務(wù)、互聯(lián)網(wǎng) 服務(wù)、短信服務(wù)、GPS服務(wù)等等)。另外當(dāng)你新添加一個Activity的時候,也需要在這個文件中進(jìn)行相應(yīng)配置,只有配置好后,才能調(diào)用此 Activity。AndroidManifest.xml將包含如下設(shè)置:application permissions、Activities、intent filters等。

HelloWorld項目的AndroidManifest.xml如下所示:

?xml version="1.0" encoding="utf-8"? manifest xmlns: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

關(guān)于AndroidManifest.xml現(xiàn)在就講這么多,此系列后面的文章將單獨(dú)詳細(xì)介紹。

1.7、 default.properties

記錄項目中所需要的環(huán)境信息,比如Android的版本等。

HelloWorld的default.properties文件代碼如下所示,代碼中的注釋已經(jīng)把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

android app文件目錄結(jié)構(gòu)

原來,只要把文件寫在這里的話,可以不用動態(tài)申請權(quán)限,只要在manifest里面聲明權(quán)限就ok了;

應(yīng)用程序在運(yùn)行的過程中如果需要向手機(jī)上保存數(shù)據(jù),一般是把數(shù)據(jù)保存在SDcard中的。

大部分應(yīng)用是直接在SDCard的根目錄下創(chuàng)建一個文件夾,然后把數(shù)據(jù)保存在該文件夾中。

這樣當(dāng)該應(yīng)用被卸載后,這些數(shù)據(jù)還保留在SDCard中,留下了垃圾數(shù)據(jù)。

并且在API

6.0之后,根目錄文件存儲是需要用戶授權(quán)的,就算你在AndroidManifest.xml中配置了存儲權(quán)限,用戶不授權(quán)也是寫不進(jìn)去了。

SD卡讀寫權(quán)限:

如果你想讓你的應(yīng)用被卸載后,與該應(yīng)用相關(guān)的數(shù)據(jù)也清除掉,該怎么辦呢?

通過

可以得到

這個目錄里面,一般放一些長時間保存的數(shù)據(jù)

方法可以獲取到 SDCard/ Android /data/你的應(yīng)用的包名/files/ 目錄,一般放一些長時間保存的數(shù)據(jù)

通過

方法可以獲取到

如果使用上面的方法,當(dāng)你的應(yīng)用在被用戶卸載后,SDCard/Android/data/你的應(yīng)用的包名/ 這個目錄下的所有文件都會被刪除,不會留下垃圾信息。并且

這個方法獲得的文件存儲路徑適用于6.0以后系統(tǒng),只要AndroidManifest.xml配置讀寫權(quán)限了,就不需要用戶再授權(quán)了。

正常開發(fā)中獲取存儲路徑的方法是:

可以看到,當(dāng)SD卡存在或者SD卡不可被移除的時候,就調(diào)用getExternalCacheDir()方法來獲取緩存路徑,否則就調(diào)用getCacheDir()方法來獲取緩存路徑。前者獲取到的就是 /sdcard/Android/data/application package/cache 這個路徑,而后者獲取到的是 /data/data/application package/cache 這個路徑。

設(shè)置-應(yīng)用-應(yīng)用詳情里面的”清除數(shù)據(jù)“與”清除緩存“選項分別對應(yīng)的是data/data/application package/和data/data/application package/cache

external storage (外部存儲):

Environment.getExternalStorageDirectory()SD根目錄:/mnt/sdcard/ (6.0后寫入需要用戶授權(quán))

context.getExternalFilesDir(dir)路徑為:/mnt/sdcard/Android/data/ package name /files/…

context.getExternalCacheDir()路徑為:/mnt/sdcard//Android/data/ package name /cache/…

internal storage(內(nèi)部存儲):

context.getFilesDir()路徑是:/data/data/ package name /files/…

context.getCacheDir()路徑是:/data/data/ package name /cach/…


網(wǎng)站欄目:android目錄結(jié)構(gòu),android根目錄結(jié)構(gòu)
標(biāo)題路徑:http://weahome.cn/article/hoddeg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部