Android初識Helloworld


在Eclipse+ADT中創建HelloWorld非常簡單,直接按照導航下一步就可以了。本文重點不在如何創建,而在理解HelloWorld項目的文件。

HelloWorld的目錄結構有:

Image(3)

src:存放應用程序的邏輯代碼,這里面的代碼是人工寫的

gen:存放資源代碼,這里面的代碼是自動生成的

assets:存放mp3等視頻資源

bin:生成的可執行的二進制文件目錄

libs:引用到的庫,這里和bin/dexedLibs里面的目錄是一致的

res:資源文件。往這個目錄添加資源的時候,會被gen/R.java自動記錄,自動那個記錄到R.java中去。

AndroidManifest.xml:項目的總配置項,記錄應用中使用到各種全局的配置

ic_launcher-web.png:這個是為了google Play市場使用展示的圖標,它需要的是512×512的高分辨率的圖標。

proguard-project.txt

project.properties

這兩個文件是為了保護Android項目而做的代碼混淆使用的。官方文檔在:http://developer.android.com/tools/help/proguard.html

下面一個一個看:

src

存放用戶代碼的文件夾,里面至少會有一個Activity。Activity的概念就是界面,相當於C#中的Windows Form。

Image(4)

看到至少包含了一個onCreate函數,是在渲染界面的時候調用的,這里使用R.layout.activity_main來渲染,這個就對應於gen/R中的

Image(5)

activity_main等號后面的是資源描述符。

這里正好可以看一下R這個類

gen/R.java

R中的每個類都對應res中的一個資源,

比如layout對應res/layout

drawable對應res/drawable-XXdpi

所以上文中的R.layout.activity_main對應的實際是res/layout/activity_main.xml。這樣就把界面和邏輯分開了,這就是典型的mvc模式分層的概念。

gen/BuildConfig.java

里面存放着全局的DEBUG開關,你可以使用這個開關做日志和調試的操作。

但是如何修改這個呢?gen下面的文件不應該手動修改,具體可以參照:http://drovik.com/html/5701262218.html

bin

這個目錄是生成文件的目錄,可以看到,它把apk包,AndroidMainifest.xml都生成一份放在文件夾內。

bin/class.dex


java編譯后生成的java字節碼文件,相當於java的.class文件。但是由於Android使用的dalvik虛擬機和標准的java虛擬機是不兼容的,所以dex和class是不一樣的。

現在網絡上就有一些工具能通過dex來進行反編譯出Android代碼。比如這個:

http://code.google.com/p/android-apkdb/

bin/HelloWorld.apk

這個就是應用的安裝包了(application package file)。一個apk文件內包含被編譯的代碼文件(.dex文件),文件資源(res),assets,證書(certificates),和清單文件(manifest file)。APK是基於zip文件格式的。

bin/resources.ap_

這個是所有資源文件的集合,實際上是zip格式。我們可以將它的后綴名修改,解壓可以看到里面的結構是有mainfest,res等。

bin/dexedLibs

對應libs中引用的jar包

res

這個目錄就是所有的資源文件了

Image(6)

res/drawable-Xdpi:這里存放的是對不同分辨率的資源

res/layout:存放布局資源,src中的onCreate方法就加載了這里面的activity_main資源

res/menu:手機的menu菜單

res/values:用來存放一些變量,參數等。

res/values-XX:對於不同設備或者不同的安卓版本會有不同的參數設置

參考文章

http://blog.chukong-inc.com/index.php/2012/06/05/android%E4%BB%A3%E7%A0%81%E6%B7%B7%E6%B7%86/

http://drovik.com/html/5701262218.html

http://www.cnblogs.com/skynet/archive/2010/04/13/1711479.html

 

==================================
作者:軒脈刃(yjf512)
出處:(http://www.cnblogs.com/yjf512/
版權聲明:本文的版權歸作者與博客園共有。歡迎轉載閱讀,轉載時須注明本文的詳細鏈接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM