Hướng dẫn build app trong android studio

Khi bạn đang dev cho Android thì có thể trình giả lập được cung cấp sẵn để testing vẫn là chưa đủ, khi đó bạn cần lấy file APK nạp lên điện thoại Android để trải nghiệm được thực tế hơn ; hoặc có thể là bạn đang định phân phối bản demo của app cho một vài người để trải nghiệm thử. Bài viết sau hướng dẫn ngắn gọn cách để lấy file testing APK từ Android Studio.

  1. Trên menu, chọn Build > Build Bundle(s) / APK(s) > Build APK(s).
  2. Android Studio sẽ bắt đầu build app của bạn. Sau khi app đã được build xong thì sẽ có một thông báo pop-up hiện lên ở góc dưới bên phải cửa sổ Android Studio.
    Hướng dẫn build app trong android studio
    Minh hoạ thông báo pop-up hiện lên
  3. Ta vào chữ "locate" có màu xanh nước biển. Việc này sẽ mở thư mục chứa file apk debug nằm chung trong thư mục Project của app chúng ta đang viết ! Thường sẽ có 2 file bên trong, trong đó có 1 file đuôi apk tên là "app-debug.apk" chính là file mà chúng ta cần trích !
  4. (Nếu thích) Đổi tên lại app và chép lên điện thoại.

Lưu ý 1 số điều sau:

  • App này chỉ có thể dùng cho mục đích testing. Để phân phối app cho người dùng phổ thông và đưa lên Play Store là một công đoạn phức tạp khác sẽ được nói đến sau ! Để có thể cài đặt được app này thì cần phải bật chức năng "Cho phép cài đặt từ nguồn ngoài" trên điện thoại Android của bạn. Tuỳ mẫu và hãng điện thoại mà chức năng này được bật theo cách khác nhau. Tham khảo hướng dẫn của hãng điện thoại để biết thêm chi tiết

Việc chuyển sang Android Studio với hệ thống build mới: Gradle hứa hẹn một tương lai tươi sáng khi Gradle chỉ build những phần thay đổi, do đó sẽ build nhanh hơn Ant trên Eclipse. Tuy nhiên, đời không như là mơ. Một ngày bạn nhận ra rằng bạn phải chờ rất lâu trong mỗi lần build app. Bạn quyết định Google tìm giải pháp, và bạn tìm được bài viết này.Với 2 tùy chỉnh dưới đây, mình đã giảm được ~6 lần thời gian build

Cách 1: Offline work

hông thường, khi build project của bạn, gradle sẽ cập nhật những thư viện cũ và thêm những thư viện mới (bạn chỉ định trong mục dependencies của file build.gradle). Việc truy cập mạng và kiểm tra cập nhật này cũng tốn kha khá thời gian, ngay cả khi bạn có một đường truyền vũ bão đi chăng nữa =)) Nên bạn có thể tắt chức năng này đi bằng cách: Trong Android Studio, vào File -> Settings -> Build, Execution, Deployment -> Build tool -> Gradle và tick vào tùy chọn Offline work. Việc làm này sẽ thêm tùy chọn --ofline trong gradle build, thông tin chi tiết bạn có thể xem tại gradle documentation

Hướng dẫn build app trong android studio
LƯU Ý: Mỗi lần bạn thêm một thư viện mới trong dependencies, thì bạn bỏ tùy chọn Offline work đi để Gradle tải và cài đặt thư viện mới, xong rồi lần sau lại tiếp tục offline

Cách 2: Multidex

Có thể bạn thừa biết, Android giới hạn dự án của bạn (bao gồm code hệ thống, code thư viện bên thứ 3, code của chính bạn) là 65536 phương thức và bạn phải nhờ đến sự trợ giúp của thư viện Multidex. Việc build với Multidex cũng ngốn thêm khoảng 40s cuộc đời bạn. Nguyên nhân chủ yếu dẫn đến sự vượt quá 65536 phương thức là do thư viện Google Play Service: compile 'com.google.android.gms:play-services:x.y.z' (thường bạn dùng trong việc Push notification, quảng cáo Admod, Login, Analytics…). May sao, từ phiên bản 6.5 trở đi, Google xẻ nhỏ các thư viện ra và bạn chỉ cần compile những thư viện nào mình dùng, nên bạn hãy xóa compile 'com.google.android.gms:play-services:x.y.z' và thay vào đó là thư viện mà mình cần dùng, ví dụ: com.google.android.gms:play-services-gcm:8.3.0 cho Push notification. Vậy là bạn đã giảm được kha khá phương thức không cần thiết (thằng Google Play Service ban đầu nó gần 30k phương thức lận

Hướng dẫn build app trong android studio
). Đồng thời, bạn cũng sẽ bỏ được luôn tùy chọn Multidex.

Kiểm tra

Để xem thời gian build của dự án, bạn có thể vào mục Event log (View -> Tool Windows -> Event log) để xem log trong mỗi lần chạy dự án (hoặc Re-build). Lần đầu build thì có thể không thấy thay đổi gì, nhưng lần thứ 2 bạn sẽ thấy rõ 🙂

Kết

Với 2 thay đổi trên, dự án của mình thường build mất 1 đến 2 phút , giờ còn trung bình có 30s (tung hoa, tung hoa). Trên đây là một số mẹo mình tìm hiểu được, hy vọng nó sẽ hữu ích cho bạn.

Android Studio là công cụ toàn diện để phát triển ứng dụng cho Android, bạn thoải mái viết code bằng các ngôn ngữ lập trình tùy thích trên nó như C++, Java, Kotlin, đến nay với sự hoàn thiện của nó việc cài đặt và thiết lập rất đơn giản.

Để cài đặt thật đơn giản, bản chỉ việc tải bộ cài Android Studio tại Download Android Studio, rồi chạy file cài đặt đó.

Trong quá trình cài đặt bạn chỉ cần lưu ý, khi hỏi chọn các thành phần bạn chọn cài đặt đầy đủ như hình (Gồm cả SDK và AVD - máy ảo)

Hướng dẫn build app trong android studio

Lần đầu tiên khởi chạy Adnroid Studio, nó sẽ tiến hành cập nhật một loạt các thành phần, chờ cho nó cập nhật song xuất hiện màn hình Wizad, từ đó tùy bạn sử dụng có thể tạo Project mới hay mở Project đã có sẵn để làm việc.

Bắt đầu một Project mới với Android Studio

Giờ tiến hành tạo một ứng dụng Android đơn giản đầu tiên, chạy ứng dụng đó đơn giản hiện thị dòng chữ Lập trình với Android Studio

Bạn chạy Android Studio, sau đó chọn Start a new Android Studio Project, màn hình mới hiện thị ra bạn điền các thông tin ứng dụng như hình:

  • Application name : Tên ứng dụng của bạn (ví dụ trên chọn là FirstApp)
  • Company domain : chọn domain của ứng dụng ví dụ xuanthulab.net
  • Project location : đường dẫn tới thư mục lưu dự án

Nhấn Next đến màn hình

android:layout_width="wrap_content" android:layout_height="wrap_content" **android:text="Lập trình với Android Studio"** **android:textColor="@android:color/holo_red_dark"** app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 0

Ở màn hình này chọn

android:layout_width="wrap_content" android:layout_height="wrap_content" **android:text="Lập trình với Android Studio"** **android:textColor="@android:color/holo_red_dark"** app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 1 để hướng lập trình ứng dụng cho điện thoại, máy tính bảng. Phần API có thể chọn là API 14 (ứng dụng sẽ chạy được gần như 100% các thiết bị Android, bạn cân nhắc con số này, chọn API thấp thì ứng dụng chạy được trên nhiều thiết bị cũ nhưng nhiều API hiện đại lại không dùng được, ngược lại chọn API cao thì áp dụng được nhiều thư viện mới nhưng số lượng thiết bị mới trên thị trường lại ít hơn. Chọn API 14 tương ứng các thiết bị chạy Android 4.0 trở đi sẽ chạy được)

Nhấn Next tới màn hình

android:layout_width="wrap_content" android:layout_height="wrap_content" **android:text="Lập trình với Android Studio"** **android:textColor="@android:color/holo_red_dark"** app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 3

Ở mày hình này

android:layout_width="wrap_content" android:layout_height="wrap_content" **android:text="Lập trình với Android Studio"** **android:textColor="@android:color/holo_red_dark"** app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 4 đưa ra một số mẫu (template) cấu hình sẵn để bạn lựa chọn, để bắt đầu ta có thể chọn

android:layout_width="wrap_content" android:layout_height="wrap_content" **android:text="Lập trình với Android Studio"** **android:textColor="@android:color/holo_red_dark"** app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 5

Nhấn Next đến màn hình

android:layout_width="wrap_content" android:layout_height="wrap_content" **android:text="Lập trình với Android Studio"** **android:textColor="@android:color/holo_red_dark"** app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 7

Ở đây bạn có thể chọn:

  • android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Lập trình với Android Studio" android:textColor="@android:color/holo_red_dark" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 8 : Bạn đặt tên Activity ví dụ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Lập trình với Android Studio" android:textColor="@android:color/holo_red_dark" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> 9, Android Studio sẽ dùng tên này đặt tên cho một class Java nó tạo ra, lớp này kế thừa lớp Activity (lớp Activity là gì sẽ tìm hiểu sau, ở đây bạn có thể hiểu nó như một cửa sổ - một màn hình chính của ứng dụng của bạn).
  • `C++`0: là tên `C++`1, Android Studio sẽ tạo ra một file có tên bạn chọn (mở rộng xml), nội dung file này mô tả các thành phần hiện thị được trong Activiy, nó sẽ được Activity nạp vào trước khi hiện thị lên màn hình.

Nhấn `C++`2, bạn đã có một Project Android Studio. Bạn hãy chờ cho thành phần `C++`3 của Android Studio cập nhật cấu hình ứng dụng bạn mới tạo ra, trong quá trình lần đầu tạo ra, nếu nó thấy còn thiếu thư viện nào, component nào nó sẽ xuất hiện cửa sổ `C++`4 gợi ý tải về thì bạn hãy đồng ý tải về. Như hình dưới hãy bấm vào `C++`5

Bạn chờ vài giây, để Android Studio hiện thị thông tin chi tiết về Project trên màn hình.

Tìm hiểu cửa sổ Project và cửa sổ Edit

Sau khi tạo dự án FirstApp, thì cửa sổ hiện thị ra để cho bạn bắt đầu làm việc, cơ bản nhất bản thấy bên trái là Project, hiện thị cấu trúc dự án của bạn, một bên là cửa sổ để bạn soạn thảo các thành phần

Khám phá sơ qua về cấu trúc Project : nhìn vào phần của sổ Project, bạn thấy nó có cấu trúc dạng cây, mô tả chính cấu trúc một dự án Android

Bạn có thể bấm kép vào từng thành phần để xem chi tiết, hay mở nó ra trong cửa sổ soạn thảo để biên tập các thành phần tương ứng, cơ bản có thể ban đầu bạn làm quen với các thành phần:

  • `C++`6 : tham chiếu đến file `C++`7, file này để bạn mô tả cấu trúc chính của App, nhằm dúng Android OS biết được các thiết lập cơ bản của App để khởi chạy được nó, như Activiy nào sẽ được chạy, ứng dụng xin những quyền gì trong thiết bị ...
  • `C++`8 : thư mục lưu trữ các file code java của ứng dụng, lớp FirstActivity được định nghĩa với file `C++`9 lưu trong cấu trúc thự mục này
  • `Java`0 : lưu trữ các file tài nguyên mà ứng dụng sẽ sử dụng đến, nó tổ chức thành các thư mục con như:
    • `Java`1 : ở đây cơ bản lưu các đối tượng đồ họa như các ảnh dạng png, các ảnh dạng xml ...
    • `C++`1 : lưu trữ các file `Java`3 biểu diễn về thành phần, bố cục của các thành phần hiện thị được trên màn hình
    • `Java`4 : cũng để lưu các đối tượng hình ảnh, ví dụ icon ứng dụng `Java`5 đặt ở đây
    • `Java`6: chứa các file như `Java`7, `Java`8, `Java`9,`Kotlin`0, đây là các file xml định nghĩa các giá trị có thể sử dụng trong ứng dụng như màu sắc, kích thước, các chuỗi, các theme ...
  • `Kotlin`1 chứa nhiều nhánh con như `Kotlin`2, `Kotlin`3 ... là nơi bạn thiết lập các thông số để `C++`3 build ứng dụng. Bạn lưu ý `C++`3 là một công cụ tích hợp vào Android Studio, chức năng của nó build mã nguồn, kết hợp tài nguyên, phân tích xml ... rồi kết hợp chúng lại với nhau tạo ra ứng dụng chạy trên JVM.

Khám phá code chương trình FirstActivity

Bạn mở FirstActivity.java ra, nội dung của nó như thế này:

package net.xuanthulba.firstapp; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class FirstActivity extends AppCompatActivity {

@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    **setContentView(R.layout.activity_first);**
} }

Lớp FirstActivity kế thừa từ AppCompatActivity của thư viện Android, nên nó là một Activity. Một Activity hiểu như một cửa sổ, bên trong nó chứa các thành phần để nó tương tác và đưa thông tin cho người dùng. Bạn có thể đưa một giao diện mà bạn định nghĩa (trong file `Kotlin`6) vào nó bằng phương thức `Kotlin`7.

Trong hệ thống Android, khi Activity được tạo ra nó bao giờ cũng gọi phương thức `Kotlin`8 (xem kỹ hơn vòng đời Activity) nên bạn thấy có quá tải (overrided) phương thức này và trong đó có gọi setContentView để nạp UI với tham số là ID `Kotlin`9 trỏ đến `Kotlin`6

Tiếp theo bạn mở `Kotlin`6

File viết bằng ngôn ngữ XML này, chứa các thành phần gọi là View, sẽ được Activity nạp vào để hiện thị. Bạn thấy có một phần tử là`Start a new Android Studio Project`2 với thuộc tính `Start a new Android Studio Project`3, phần tử này dùng để hiện thị chữ trong Android, bạn hãy thay dòng chữ "Hello World!" bằng dòng chữ của riêng bạn, ví dụ: Lập trình với Android Studio và thêm một thuộc tính `Start a new Android Studio Project`4 để đổi chữ màu đỏ.

android:layout_width="wrap_content" android:layout_height="wrap_content" **android:text="Lập trình với Android Studio"** **android:textColor="@android:color/holo_red_dark"** app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />

Make Project - Android

Bất kỳ thời điểm nào, sau khi có sự thay đổi về code, tài nguyên ... bạn muốn Gradle tiến hành buil, biên dịch code, kết hợp tài nguyên trong Project bạn chọn menu: `Start a new Android Studio Project`5 hoặc nhấn tổ hợp phím `Start a new Android Studio Project`6, quá trình Build ứng dụng sẽ diễn ra, nếu có lỗi nào sẽ xuất hiện thông báo lỗi. Khi quá trình Make Project không có lỗi gì, bạn có thể xuất ra thành file apk để cài đặt, publish ứng dụng ... (sẽ thảo luận sau), hoặc bạn tiến hành chạy ngay ứng dụng trên thiết bị test (máy thật hoặc máy ảo) sẽ trình bày ngay sau đây.

Tạo máy ảo Android với AVD Manager, chạy thử code

Bạn có thể kết nối thiết bị Android thật để chạy ứng dụng (nhớ trong thiết bị thật cần vào Setting chuyển sang chế độ `Start a new Android Studio Project`7 sang `Start a new Android Studio Project`8, tùy vào phiên bản Android đang chạy trên thiết bị mà kích hoạt chế độ này có những bước khác nhau, bạn dùng thiết bị nào thì tra thông tin kích hoạt chế độ này trên thiết bị đó. Ví dụ bạn có thể search: enable developer option on samsung s3

Ở đây, bạn có thể tạo các máy ảo Android, với sự mềm dẻo hơn trong việc chạy thử ứng dụng (bạn chọn được kích thước mà hình - thông số phần cứng, chọn được phiên bản Android).

Trình quản lý máy ảo đi kèm Android Studio có tên là `Start a new Android Studio Project`9, mở công cụ này nên bằng cách truy cập vào menu: `Application name`0

Để tạo thiết bị mới bấm vào `Application name`1

Trong cửa sổ Select hardware này, bạn chọn phần cứng muốn tạo máy ảo, sau khi chọn bấm Next

Ở đây bạn chọn bản Android nào muốn cài vào máy ảo, có 3 tab để bạn lựa chọn: Recommended - danh sách khuyến nghị, x86 image - Android chạy dựa trên kiến trúc chip x86, Other - các bản Androi khác. Bạn chọn lấy một phiên bản Android (nếu bản chọn có chữ Download thì bấm vào để tải về). Tiếp theo bấm Next, đặt một tên cho thiết bị đễ dễ quản lý

Như vậy bạn đã có một máy ảo, bạn có thể chạy thử ngay bằng cách bấm vào ký hiệu `Application name`4 trong trình AVD Manager

Chạy thử code của Project trên máy áo

Trong Android Studio bạn có thể nhấn `Application name`5 hoặc vào menu: `Application name`6. Một cửa sổ hiện ra, có danh sách thiết bị đang kết nối và các máy ảo bạn đã tạo. Muốn code chạy trên thiết bị nào, thì chọn thiết bị đó vào OK.

Máy ảo sẽ được mở ra (nếu chưa mở) và ứng dụng của bạn đang code sẽ được nạp và chạy trên máy ảo này.