Android Studio Build chậm - Cách khắc phục
Chắc chắn các bạn đã quen với việc phải chờ một thời gian lúc run app rồi. Chẳng ai lập trình android mà lại không run app cả. =)) Câu chuyện mình muốn chia sẻ là cái thời gian phải chờ đợi đó. Bạn cũng biết đó là thời gian build app của Android Studio. Với mỗi app khác nhau thì thời gian chờ ...
Chắc chắn các bạn đã quen với việc phải chờ một thời gian lúc run app rồi. Chẳng ai lập trình android mà lại không run app cả. =))
Câu chuyện mình muốn chia sẻ là cái thời gian phải chờ đợi đó. Bạn cũng biết đó là thời gian build app của Android Studio.
Với mỗi app khác nhau thì thời gian chờ ấy lại khác nhau. Nhanh hay chậm tùy thuộc vào số lượng các thư viện cũ, mới mà bạn chỉ định trong mục dependencies của file build.gradle. Đôi khi cũng do máy tính cùi nữa.
Có thể bạn cũng đã gặp phải dự án mà thời gian chờ build project lên đến hơn 5 phút hoặc thậm chí còn lâu hơn.
1.
Cách khắc phục cho việc build gradle cập nhập quá nhiều thư viện là bạn vào trong Android Studio, vào File -> Settings -> Build, Execution, Deployment -> Build tool -> Gradle và tick vào tùy chọn Offline work.
Note
Khi bạn cài đăt như này thì mỗi khi bạn thêm một thư viện mới bạn cần 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
2. Thiết lập Gradle Scripts
Mở build.gradle (Module:app)
Và thêm đoạn code sau vào cuối khối android
dexOptions { incremental true javaMaxHeapSize "12g" }
Tiếp theo mở gradle.properties
Bỏ dấu # phía trước dòng
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Thêm dòng
org.gradle.daemon=true
3. Multidex
Bạn thường nhờ đến sự trợ giúp của thư viện Multidex vì 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.
Thông thường với một máy tính ổn định thì việc build kèm Multidex sẽ mất khoảng 40s - 60s nữa. Và thế là thời gian build lại được tăng lên.
Các lập trình viên thường hay sử dụng thư viện Google Play Service cho việc Push Notification, quảng cáo Admod, Login, Analytics .... Và đây chính là nguyên nhân chính dẫn đến việc vượt quá 65536 method. Nhưng từ Google nhận thấy được sự nhức nhối này và đã sửa đổi nó, Từ phiên bản 6.5 trở đi thì Google đã chia nhỏ các thư viện lớn ra cho từng mục đích riêng biệt. Ví dụ bạn chỉ cần compile com.google.android.gms:play-services-gcm:8.3.0 cho Push notification thay vì phải compile cả thư viện com.google.android.gms:play-services:x.y.z to đùng như trước. Tất nhiên điều này vô cùng tuyệt vời, nó giảm số lượng method và tăng tốc độ build một cách đáng kể (khoảng 30000 phương thức).