Lập trình Android, Series lập trình Android cơ bản

Bài 2: Tạo chương trình Android đầu tiên “Hello world” (Lập trình Android cơ bản)

Lập trình android cơ bản


Để có cái nhìn tổng quan đầu tiên về lập trình android chúng ta hãy bắt tay vào viết một chương trình đơn giản là in ra màn hình điện thoại dòng chữ “Hello world”. Để bắt đầu, bạn phải chắc chắn rằng đã thiết lập môi trường lập trình android phù hợp được giải thích ở bài 1 trong chuỗi bài của mình viết về lập trình Android cơ bản.

Tạo một project android đầu tiên


Bước đầu tiên là tạo một ứng dụng android đơn giản sử dụng Android studio. Khi bạn click vào icon Android studio, nó sẽ hiển thị màn hình như bên dưới


Bạn có thể triển khai ứng dụng của mình bằng cách gọi Start a new Android Studio project. Trong màn hình Choose your project các bạn chọn Empty Activity rồi ấn Next.


Trong màn hình Configure your project các bạn điền đầy đủ thông tin như Name (Tên project), Package name (Tên package có thể để mặc định), Save location (Nơi chứa thư mục project của bạn), Laguage (Ngôn ngữ để lập trình chọn Java). Sau đó ấn Finish để hoàn thành phần Create new project.


Cuối cùng công cụ phát triển được mở để chúng ta viết code và triển khai ứng dụng.

Cấu tạo của một ứng dụng Android


Trước khi chạy ứng dụng của mình, bạn nên biết về một số thư mục và file trong một Android Project.

Thư mục, file và mô tả
1AndroidManifest.xml
Đây là tập tin chứa danh sách những mô tả những đặc điểm cơ bản của ứng dụng và định nghĩa từng thành phần của nó.
2Java
Chứa những .java source files cho project của bạn. Mặc định, nó bao gồm MainActivity.java source files có một class activity mà khi ứng dụng được chạy nó sẽ xuất hiện đầu tiên.
3res/ drawable
Chứa các hình ảnh để sử dụng trong ứng dụng của bạn.
4res/ layout
Là thư mục chứa các file .xml để định nghĩa các giao diện người dùng cho ứng dụng của bạn.
5res/ values
Là thư mục gồm các file .xml khác nhau để chứa các bộ sưu tập của tài nguyên, chẳng hạn như định nghĩa các chuỗi ký tự (string) hay màu sắc được sử dụng trong ứng dụng
6Build.gradle
Đây là một tệp được tạo tự động có chứa compileSdkVersion, buildToolsVersion, applicationId, minSdkVersion, targetSdkVersion, versionCode và versionName

Phần tiếp theo sẽ cho các bạn cái nhìn tổng quan về các file quan trọng trong ứng dụng Android.

Main Activity File


Main activity code là một Java file MainActivity.java. Đây là một file ứng dụng thực sự mà sau cùng được chuyển đổi thành một Dalvik thực thị và chạy ứng dụng. Dưới đây là code mặc định được khởi tạo bởi wizard cho ứng dụng Hello World.

package net.techchicken.myapplication;

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);
    }
}


Ở đây, R.layout.activity_main đề cập đến activity_main.xml file nằm trong thư mục res/layout. Phương thức onCreate() là một trong nhiều phương thức được gọi đến trong khi một Activity được tải.

Mainfest File


Bất kể một thành phần nào bạn triển khai như một phần của ứng dụng bạn cần khai báo nó trong manifest.xml nằmg ở thư mục gốc của ứng dụng. File này làm việc như một interface giữa hệ điều hành Android và ứng dụng của bạn, nên nếu bạn không khai báo các thành phần của bạn trong file này thì nó sẽ không được xem xét bởi hệ thống. Dưới đây là ví dụ về một manifest file mặc định.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.techchicken.myapplication">

    <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>


Cặp thẻ <application>…</application> kèm theo các thành phần liên quan tới ứng dụng. Thuộc tính Attribute android:icon sẽ trỏ đến icon của ứng dụng có sẵn trong thư mục mipmap. Ứng dụng sẽ sử dụng hình ảnh có tên là ic_launcher.png nằm trong thư mục mipmap.

Thẻ <activity> được sử dụng để xác định một Activity và thuộc tính android:name xác định tên lớp đầy đủ của lớp con Activity và thuộc tính android:label xác định một chuỗi để sử dụng như là nhãn cho Activity đó. Bạn có thể định nghĩa nhiều Activity bằng cách sử dụng thẻ <activity>.

Action cho Intent-Filter có tên android.intent.action.MAIN để biểu thị activity này phục vụ như là điểm entry cho ứng dụng. Category cho Intent-Filter có tên android.intent.category.LAUNCHER để chỉ rằng ứng dụng có thể chạy từ biểu tượng launcher của thiết bị.

@string tham chiếu tới strings.xml đã được đề cập ở trên. Vì thế, @string/app_name tham chiếu tới app_name được định nghĩa trong strings.xml, có giá trị tương ứng là HelloWorld. Tương tự, các string khác sẽ được đưa vào ứng dụng.

Sau đây là một số thẻ bạn sẽ sử dụng trong manifest file của bạn để chỉ định các thành phần ứng dụng khác trong android:

Các thẻ <activity> cho các Activity.
Các thẻ <service> cho các service.
Các thẻ <receiver> cho Broadcast Receiver.
Các thẻ <provider> cho Content Provider.

Strings File


strings.xml nằm trong thư mục res/values và nó chứa tất cả các text mà ứng dụng của bạn sử dụng. Ví dụ như, tên của các nút, các nhãn, text mặc định và các kiểu chuỗi tương tự vào trong file này. File này chịu trách nhiệm cho các nội dụng ở trong văn bản. Dưới đây là ví dụ của một strings file mặc định:

<resources>
   <string name="app_name">My Application</string>
   <string name="hello_world">Hello world!</string>
   <string name="menu_settings">Settings</string>
   <string name="title_activity_main">MainActivity</string>
</resources>

Layout File


activity_main.xml là một layout có sẵn trong thư mục res/layout, nó được tham chiếu bởi ứng dụng của bạn khi xây dựng giao diện của nó. Bạn sẽ phải sửa file này rất nhiều để thay đổi layout của ứng dụng của bạn. Với ứng dụng “Hello World“, file này sẽ chứa nội dung có liên quan tới layout mặc định.

<?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=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/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>


Đây là ví dụ đơn giản của ConstraintLayout chứa một TextView mà chúng ta sẽ tìm hiểu thêm ở phần sau. TextView là một điều khiển Android để xây dựng GUI và nó có các thuộc tính đa dạng như android:layout_widthandroid:layout_height mà đang được sử dụng để thiết lập độ rộng và chiều cao của nó. @string tham chiếu tới strings.xml file được đặt trong thư mục res/values. Vì thế, @string/hello_world tham chiếu tới chuỗi Hello World được định nghĩa trong strings.xml.

Chạy ứng dụng Android


Hãy thử chạy ứng dụng Hello World của bạn, ứng dụng chúng ta vừa tạo. Mình giả sử bạn đã tạo AVD của mình trong khi thực hiện thiết lập môi trường. Để chạy ứng dụng từ studio Android, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào Run ‘app’ từ thanh công cụ. Android studio sẽ cài đặt ứng dụng trên AVD và bắt đầu nó, nếu mọi thứ đều ổn với thiết lập và ứng dụng của bạn, nó sẽ hiển thị theo cửa sổ Trình mô phỏng.

Được gắn thẻ ,

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *