Cấu trúc thư mục Project Android
Trong bài này chúng ta sẽ tìm hiểu cấu trúc thư mục của một project Android gồm có những gì, để từ đó có thể áp dụng vào những ứng dụng mà sau này mình sẽ xây dựng. Tuy nhiên vì mỗi người một ý nên cấu trúc có thể khác nhau, nhưng cơ chế các component thì không có gì khác.
1. Cấu trúc chuẩn trên Android Studio
Để phát triển các ứng dụng Android thì bạn cần một IDE, và Android Studio là IDE chính thức được Google cung cấp miễn phí. Nó đã được tích hợp môi trường phát triển nên bạn chỉ việc sử dụng mà không cần quan tâm gì thêm.
Khi thiết lập môi trường phát triển Android và tạo một ứng dụng bằng Android Studio thì bạn sẽ nhận được cấu trúc thư mục project sẽ giống như hình dưới đây.
Cấu trúc project của bạn có thể khác với minh họa trên. Để xem cấu trúc file thực tế của project, chọn Project từ menu dropdown nằm ở góc trên bên trái (mặc định chọn Android).
Bài viết này được đăng tại [free tuts .net]
2. Giải thích ý nghĩa các thưc mục
Project của ứng dụng Android sẽ chứa nhiều loại app modules, source code files và resource files khác nhau. Ta sẽ khám phá tất cả các thư mục và file ở dưới đây.
Thư mục Java
Thư mục này sẽ chứa tất cả các file mã nguồn java ( .java ) mà chúng ta sẽ tạo trong quá trình phát triển ứng dụng, bao gồm cả mã JUnit test code. Bất cứ khi nào tạo bất kỳ project / ứng dụng mới nào, file lớp MainActivity.java sẽ tự động tạo trong package là com.tutlane.helloworld, giống như dưới đây.
Thư mục res (Resources)
Đây là một thư mục quan trọng sẽ chứa tất cả các resource không phải code, chẳng hạn như ảnh bitmap, UI strings, XML layouts như hiển thị bên dưới.
Thư mục res (Resources) sẽ chứa một số loại thư mục khác :
Thư mục drawable (res/drawable)
Nó sẽ chứa các dạng ảnh khác nhau. Tốt nhất là nên thêm tất cả các hình ảnh vào thư mục drawable ngoại trừ các biểu tượng ứng dụng / laucher.
Thư mục layout (res/layout)
Thư mục này sẽ chứa tất cả các file XML layout đã sử dụng để xác định Giao diện người dùng của ứng dụng. Sau đây là cấu trúc của thư mục layout.
Thư mục Mipmap (res / mipmap)
Thư mục này sẽ chứa các biểu tượng ứng dụng / laucher được sử dụng để hiển thị trên màn hình chính. Các loại biểu tượng sẽ có tỷ trọng khác nhau như hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi, để sử dụng dựa trên kích thước của thiết bị.
Sau đây là cấu trúc của thư mục mipmap.
Thư mục values (res/values)
Thư mục này sẽ chứa một số file XML khác nhau, chẳng hạn như strings, colors, styles . Sau đây là cấu trúc của thư mục values.
Thư mục Manifests
Thư mục này sẽ chứa một file Manifest ( AndroidManifest.xml ) cho ứng dụng Android . File manifest này sẽ chứa thông tin về ứng dụng , chẳng hạn như android version, access permissions, metadata, v.v. và các component của ứng dụng. File manifest sẽ hoạt động như một trung gian giữa hệ điều hành Android và ứng dụng .
Sau đây là cấu trúc của thư mục mainfests.
Gradle Scripts
Trong Android, Gradle là công cụ build hệ thống và Gradle được tích hợp sẵn vào Android Studio, và được điều khiển một cách tự động thông qua Android Studio. Trong gradle có build.gradle (Project) và build.gradle (Module) được sử dụng để build các cấu hình áp dụng cho tất cả các module ứng dụng hoặc dành riêng cho một mô-đun ứng dụng.
Sau đây là cấu trúc của Gradle Script .
Sau đây là các file quan trọng cần để triển khai một ứng dụng trong android studio.
File Android Layout (Activity_main.xml)
Giao diện người dùng của ứng dụng sẽ được thiết kế trong file này và nó sẽ có hai chế độ Design và Text . Nó sẽ tồn tại trong thư mục layout. Cấu trúc của file activity_main.xml trong chế độ Design như dưới đây.
Ta có thể sửa đổi file activity_main.xml bằng cách sử dụng các chế độ Design và Text. Nếu chúng ta chuyển sang chế độ Text, file activity_main.xml sẽ chứa code như dưới đây.
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.tutlane.helloworld.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
File Android Main Activity (MainActivity.java)
File main activity trong ứng dụng Android là MainActivity.java và nó nằm trong thư mục java . File MainActivity.java sẽ chứa mã java để xử lý tất cả các activity liên quan đến ứng dụng .
Sau đây là mã mặc định file MainActivity.java của ứng dụng HelloWorld.
package com.tutlane.helloworld; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
File Android Manifest (AndroidManifest.xml)
Nói chung, ứng dụng sẽ chứa nhiều activity và cần xác định tất cả các activity trong file AndroidManifest.xml . Trong file manifest, ta cần đề cập đến main activity cho ứng dụng bằng cách sử dụng các thuộc tính MAIN action và LAUNCHER category trong các intent filters (<intent-filter>). Trong trường hợp nếu ta không đề cập đến MAIN action và LAUNCHER category cho main activity, biểu tượng ứng dụng sẽ không xuất hiện trong danh sách ứng dụng của màn hình chính.
Sau đây là mã mặc định file AndroidManifest.xml của ứng dụng HelloWorld.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tutlane.helloworld" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Đây là các thư mục và file cần thiết để triển khai một ứng dụng trong android studio. Nếu bạn muốn xem cấu trúc file thực tế của project, chọn Project từ menu dropdown nằm ở góc trên bên trái (mặc định chọn Android).