Directory Structure of an Android Project – Cấu trúc thư mục của một dự án android

Any Android project contain things such as application source code and resource files. Some are generated for you by default, while others should be created if required. Lets have a look at android eclipse project directory structure below :

Bất kì một dự án android nào cũng chứa mã ứng dụng và các file tài nguyên. Một số thứ thì được tạo mặc định cho bạn, trong khi một số thứ khác thì bạn phải tự tạo ra. Chúng ta cùng xem qua cấu trúc thư mục của một dự án android trên eclipse như dưới đây:

androidProjectExplorer

gen

The gen directory in an Android project contains auto generated files. You can see R.java inside this folder which is a generated class which contains references to certain resources of the project. R.java is automatically created by the Eclipse IDE and any manual changes are not necessary
Thư mục gen trong một dự án android chứa cái files được tạo tự động bởi eclipse. Bạn có thể nhìn thấy file R.java bên trong thư mục này. File R.java sẽ tạo ra lớp tham chiếu tới các tài nguyên trong dự án của bạn. Bạn có thể chỉnh sửa file này bằng tay (nhưng điều này là không cần thiết).

res

Android supports resources like images and certain XML configuration files, these can be keep separate from the source code. All these resources should be placed inside the res folder. This res folder will be having sub-folders to keep the resources based on its type.

Android hỗ trợ các tài nguyên như hình ảnh, và các file cấu hình .xml, những tài nguyên này có thể được tách riêng biệt khỏi mã ứng dụng. Tất cả các tài nguyên như thể được đặt trong thư mục res (viết tắt của resource). Thư mục này cũng có các thư mục con để lưu các tài nguyên theo các loại khác nhau.

/res/values

Used to define strings, colors, dimensions, styles and static arrays of strings or integers. By convention each type is stored in a separate file, e.g. strings are defined in the res/values/strings.xml file.

Được sử dụng để định nghĩa các chuỗi kí tự, các màu, kích thức, kiểu và các mảng tĩnh của các chuỗi hoặc số nguyên. Mỗi loại được lưu riêng vào một file riêng biệt ví dụ: chuỗi thì được định nghĩa trong file res/values/string.xml

/res/values-v11 is the values of the API version 11, and /res/values-v14 is the values of the API version 14

/res/values-v11 là các giá trị của phiên bản API 11, tương tự như vậy với /res/values-v14.

/res/animator

This folder contains animations in XML for the property animation API which allows to animate arbitrary properties of objects over time

Thư mục này chứa các animations định dạng xml cho đặc tính animation của API mà nó cho phép hoạt hình hóa các đặc tính của đối tượng theo thời gian.

/res/layout

This folder contains the layouts to be used in the application.A layout resource defines the architecture for the UI in an Activity or a component of a UI. These are resource directories in an application that provides different layout designs for different screen sizes

Thư mục này chứa các layouts (bố cục, các sắp xếp) được sử dụng trong ứng dụng. Một layout sẽ định nghĩa kiến trúc của giao diện người dụng trong một hoạt động hoặc trong một thành phần của một UI (giao diện người dùng). Thư mục này sẽ cung cấp các thiết kế layout khác nhau cho các kích cỡ màn hình khác nhau. layout mặc định khi tạo project là activity_main.xml, bạn cũng có thể tự tạo layout khác nhau (.xml) và lưu vào thư mục này.

/res/layout – layout for normal screen size or default – mặc định cho màn hình bình thường.

/res/layout-small – layout for small screen size – layout cho màn hình cỡ nhỏ.

/res/layout-large – layout for large screen size – layout cho màn hình cỡ lớn.

/res/layout-xlarge -layout for extra-large screen size – layout cho màn hình cỡ cực lớn.

/res/layout-xlarge-land – layout for extra-large in landscape orientation – layout cho cỡ cực lớn hướng phong cảnh

/res/layout-sw600dp – layout for tablets or layout for 7” tablets (600dp wide and bigger) – layout cho các tablets hoặc các tablets cỡ 7 inches (rộng 600dp hoặc lớn hơn)

/res/layout-sw720dp – layout for 10” tablets (720dp wide and bigger) – layout cho màn hình 10 inches (rộng 720dp hoặc lớn hơn).

/res/layout-w600dp – layout for Multi-pane (any screen with 600dp available width or more)

/res/menu

This folder contains menu resources to be used in the application (Options Menu, Context Menu, or submenu)

Thư mục này chứa tài nguyên thực đơn (menu) được sử dụng trong ứng dụng.

/res/raw

This folder contains raw resources that can be looked up by their resource IDs. These resources can be referenced from other resources all of the same way we do with other resources.

Thư mục này chứa đựng các tài nguyên thô mà có thể tìm theo IDs. Những tài nguyên này có thể được tham chiếu từ các tài nguyên khác theo cách tương tự mà chúng ta làm với các tài nguyên khác.

/res/drawable

Drawable folders are resource directories in an application that provides different l bitmap drawables for medium, high, and extra high density screens.

Thư mục này là thư mục tài nguyên trong ứng dụng dùng cho việc cung cấp các bitmap khác nhau (ảnh) cho các màn hình với các mật độ phân giải khác nhau.

/res/drawable-mdpi – bitmap for medium density

/res/drawable-hdpi – bitmap for high density

/res/drawable-xhdpi – bitmap for extra high density

/res/drawable-nodpi – bitmap with no pre-scaling

libs

External library files will be placed in this folder. If you want to any external library in your project place the library jar inside this folder and it will be added to the classpath automatically.

Các files thư viện bên ngoài được đặt trong thư mục này. Nếu bạn muốn dùng bất kì thư viện ngoài này vào trong dự án của bạn thì bạn hãy đặt file thư viện (.jar) vào bên trong thư mục này. Đường dẫn của thư viện sẽ được thêm tự động.

assets

This folder contains raw hierarchy of files and directories, with no other capabilities. It is just an unstructured hierarchy of files, allowing you to put anything you want there and later retrieve as raw byte streams.

Thư mục này chứa hệ thống cấp bậc dạng thô của các files và thư mục mà không có các khả năng khác. Nó chỉ là một cấp bậc ko cấu trúc của files, cho phép bạn đặt bất cứ thứ gì bạn muốn ở đó và có thể khôi phục sau.

bin

Bin folder is the area used by the compiler to prepare the files to be finally packaged to the application’s APK file. This includes

  • Compiling your Java code into class files
  • Putting your resources (including images) into a structure to be zipped into the APK

This is the output directory of the build. This is where you can find the final .apk file and other compiled resources.
Thư mục bin là một vùng được sử dụng bởi trình biên dịch để chuẩn bị các files để đóng gói vào file APK của ứng dụng. nó bao gồm:

– Biên dịch code java thành các file class

– Đặt tài nguyên của bạn (bao gồm các file ảnh) vào trong một cấu trúc để nén vào file APK.

Đây là thư mục đầu ra sau khi build. Ở đây là nơi bạn có thể tìm thấy file cài đặt .apk và các tài nguyên đã được biên dịch.

AndroidManifest.xml

All the android applications will have an AndroidManifest.xml file in the root directory. This file will contain essential information about the application to the Android system, information the system must have before it can run any of the application’s code. This control file describes the nature of the application and each of its components

Tất cả ứng dụng android sẽ có một file AndroidManifest.xml trong thư mục root. File này chứa đựng các thông tin cơ bản vè ứng dụng tới hệ thống android, thông tin mà hệ thông phải có trước khi chạy bất kì mã code của ứng dụng nào. File điều khiển này mô tả  bản chất của ứng dụng và của mỗi thành phần.

ic_launcher-web.png

This is an icon to be used in Google play. Applications on Google Play require a high fidelity version of the application icon. It is not used in your actual app or the launcher, so it is not packaged in the APK.. The specifications for the high-resolution icon are:

32-bit PNG with an alpha channel

512 x 512 pixels

Maximum size of 1024KB

proguard-project.txt

Everything in the proguard-project.txt file will be in commented out state, because in general most people don’t have any project specific needs, just to run ProGuard tool with standard settings.

The ProGuard tool shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure names. The result is a smaller sized .apk file that is more difficult to reverse engineer.

project.properties

project.properties is the main project’s properties file containing information such as the build platform target and the library dependencies has been renamed from default.properties in older SDK versions. This file is integral to the project.

 File này là file đặc tính của dự án chứa đựng thông tin kiểu như thông tin về platform, thư viện….File này được tích hợp vào dự án.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s