4. Ưu điểm cập nhật theo Module
Mềm dẻo và linh động
Khả năng mở rộng tốt
Đơn giản hóa việc cập nhật với người dùng
Dung lượng cập nhật nhỏ
Tốc độ cập nhật nhanh tức thời
5. Dynamic Module
Module được phát triển như một project độc
lập và đóng gói thành file module.apk
Ứng dụng chính tải file module.apk từ URL
DexClassLoader: thư viện sử dụng để nạp class
động từ file module.apk
Java Reflection: khởi tạo object từ class động
và tương tác với object để kích hoạt logic thực
thi
6. Module.apk – v2.0
Module
…
Download Module
Load Module
DexClassLoader
APK
Module.apk – v1.0
Java Reflection
Quy trình cập nhật Module
Load Module Class
New Instance
Invoke Method
Active Module
7. DemoModule Code
public class DemoModule {
public void show() {
Toast.makeText(getApplicationContext(), "Hi!
version 1.0", Toast.LENGTH_SHORT).show();
}
}
DemoModule.apk - v1.0
public class DemoModule{
public void show() {
AlertDialog dialog = new
AlertDialog.Builder(this).create();
dialog.setMessage("Hi! version 2.0");
dialog.show();
}
}
DemoModule.apk – v2.0
8. Download DemoModule
public void downloadDemoModule(Context context) {
String dexPath = new File(context.getDir("dex",
Context.MODE_PRIVATE), "DemoModule.apk").getAbsolutePath();
//TODO: download DemoModule.apk from URL to dexPath File
}