Facebook cải tiến các công cụ Open Source để đẩy nhanh quá trình build ứng dụng Android

986

Facebook đã nâng cấp các công cụ open source hiện có của mình để giúp giảm thiểu thời gian compile cho các dự án Android.

Buck hiện hỗ trợ nhiều ngôn ngữ và platforms, được thiết kế để phát triển các module nhỏ, có thể tái sử dụng và có khả năng kết hợp source code với những source khác.

Tháng 4/2013 facebook công bố Buck được như là một dự án open source nó nhận được rất nhiều cải thiện đến từ đội ngũ lập trình của hãng và cả đóng góp từ cộng đồng.

Facebook còn nghiên cứu cải tiến tối ưu nhất cho developer làm việc với Java và Java compiler.

“Mục tiêu cuối cùng, chúng ta sẽ thay đổi cách Buck compiles Java code, giúp gia tăng hiệu năng thông qua những cải thiện “ “Thay đổi cách Android App được compile với Buck. Nó sẽ giúp cải thiện hiệu năng của mọi Android engineer ở khắp nơi”

Tính năng mới này được gọi là “source-only stub generation”.

Theo thông số mà hãng đưa ra thì Buck giúp cải thiện hiệu năng từ 10% cho đến 77%.

Khi Keljo chỉ định nhóm làm việc với annotation processors cho source-only stub generation. Ông miêu tả annotation processors như những user-written plugins cho Java compiler với khả năng các Java code mới cho source code annotations.

“Instagram sẽ nơi để test tính năng mới” – Keljo cho biết – “Cho build này, source-only stub generation giúp giảm bớt khoảng cách graph depth khoảng 77% và cắt đi 55% cache fetches, kết quả là khiến cho ứng chạy nhanh hơn 30%. Chúng tôi tin rằng vẫn có thể cải thiện thêm với việc loại bỏ vài opt-outs, và tính năng này dự định sẽ được áp dụng lên tất cả Android apps khác.”

Source-only stub generation đã có mặt trong Buck’s GitHub repository, và Keljo cũng đã cung cấp nguồn hướng dẫn chi tiết để sử dụng tính năng mới này, với sự giúp đỡ của một autofix script.

Keljo cũng nói về những cải thiện khác của Buck. Trong số đó có tính năng giúp phát hiện những classes nào được sử dụng trong build rules và đưa những thông tin đó vào dependency files để thay đổi ID những files nhằm cho rebuild chúng.

Nhờ đó mà số lượng rules rebuilt bởi Buck sẽ được giảm đi khoảng 35%, hiện đã được tích hợp sẵn trong open source version của Buck.

Một tính năng khác là rule pipelining giúp giảm thời gian build tới 10%. Tuy vậy, nó cần được các developer bật lên khi muốn opt in trong open source version của Buck.

Techtalk via adtmag