Tham dự Tech Lounge

Tham dự Tech Lounge


Facebook ra mắt thư viện mã nguồn mở giúp LTV Android nhận biết năng lực xử lý của thiết bị

Duy Luân
8/4/2015 4:56Phản hồi: 56
Facebook ra mắt thư viện mã nguồn mở giúp LTV Android nhận biết năng lực xử lý của thiết bị
[​IMG]

Facebook vừa công bố một thư viện dành cho việc lập trình ứng dụng Android nhằm giảm bớt sự khó khăn khi phải viết phần mềm cho nhiều loại thiết bị với kích cỡ và năng lực xử lý khác nhau. Thư viện này sử dụng một thuật toán đơn giản để đánh giá RAM, số nhân và xung nhịp CPU của thiết bị rồi gán nó cho một năm tương ứng. Ví dụ, với những thiết bị có màn hình độ phân giải cao, CPU mạnh thì thư viện trả về kết quả là năm 2013, còn khi app chạy trên máy cấu hình thấp thì kết quả sẽ là 2009 hay 2008 chẳng hạn. Dựa vào kết quả đó, nhà phát triển có thể lập trình cho phần mềm của mình hoạt động theo những cách khác nhau. Ví dụ với những máy "2013" thì app sẽ thể hiện đầy đủ hiệu ứng chuyển động, nhưng nếu máy chỉ là "2008" thì tắt chuyển động đi do năng lực xử lý không đáp ứng nổi.

Facebook giải thích thêm rằng kết quả trả về sẽ tương ứng với năm mà cấu hình của thiết bị đang chạy app được xem là cao cấp. Ví dụ, nếu app đang chạy trên một điện thoại 4 nhân, màn hình Full-HD, RAM 2GB-3GB thì kết quả trả về sẽ là 2013 do đây là cấu hình cao cấp của năm đó. Cũng cần nói thêm rằng bộ thư viện này không thay đổi hoạt động hay giao diện của các app, nó chỉ đưa về một giá trị năm như đã nói ở trên để việc lập trình được dễ dàng hơn. Điều đó giúp tiết kiệm thời gian, công sức cho nhà phát triển bởi họ không cần tự mình viết mã nhận biết cấu hình máy nữa, rất phù hợp để đảm bảo app đạt hiệu năng cao trong một thế giới Android vô cùng đa dạng và phong phú.

Thư viên nói trên mang tên Device Year Class, có mã nguồn mở và được Facebook cung cấp hoàn toàn miễn phí cho mọi lập trình viên. Bạn có thể xem thêm trên Github nếu quan tâm.

Một đoạn mã mẫu:
Code:
if (year >= 2013) {
// Chạy toàn bộ các hiệu ứng chuyển động
} else if (year > 2010) {
// Chỉ chạy các hiệu ứng đơn giản
} else {
// Không chạy hiệu ứng nào vì máy quá chậm
}
Ví dụ về những thiết bị được xem là cao cấp ứng với từng năm của thư viện Device Year Class
Device_Class_Year_Android.png

Nguồn: Android Central
56 bình luận
Chia sẻ

Xu hướng

TâmDJ194
ĐẠI BÀNG
9 năm
Đoạn code thứ 2 mình tưởng nó phải như này chứ ?

if (year >= 2013) {
// Chạy toàn bộ các hiệu ứng chuyển động
} else if (year > 2010&&year<2013) {
// Chỉ chạy các hiệu ứng đơn giản
} else {
// Không chạy hiệu ứng nào vì máy quá chậm
}
@TâmDJ194 bạn chắc éo phải lập trình viên (😃
vinhveo0812
ĐẠI BÀNG
9 năm
@Pé Bj Kòi Gì mà nói người ta như thế?
@TâmDJ194 nếu không năm không phải >= 2013 thì nó sẽ vào khối lệnh else và tự hiểu là year <2013 rồi bạn 😁
Đội quân ss trong ảnh demo cuối quá đông và nguy hiểm =))
@PrisonBreak1908 đấy mới chỉ là flagship với mấy em tiêu biểu thôi chứ họ hàng nhà sung sao ít thế này 😁
trung_it
ĐẠI BÀNG
9 năm
có phải vì cái này mà fb từ chiều đến giờ đơ như cây cơ không nhỉ?
HuluHala
TÍCH CỰC
9 năm
Thế là mình đã tụt hậu 3 năm rồi 😔 hu hu
e1yg2t
ĐẠI BÀNG
9 năm
f*ck you facebook!!!!
ăn roi thì nó chăm như con mà wp nó còn éo thèm làm app
một lần nữa f*ck you
@gauto988 chuẩn luôn, máy yếu thì cứ bản lite mà dùng cho nó lành.
@gauto988 ý bạn là cái Facebook Lite? cái đó mới ra chưa lâu sau khi fb cập nhật giao diện mới cho bên android
còn giai đoạn 2013-2014 cái app Fb bên android cực kì nhiều lỗi: văng app, không load được, giật lag. Bạn có thể xem lại các comment trên store vào giai đoạn đó
@RatLaTinhVi Android thượng vàng hạ cám, máy cấu hình thấp nên bị lỗi vậy đâu có gì lạ đâu. Mình dùng máy từ năm 2013 đây, vẫn đang dùng, chưa thấy app facebook bị văng
@e1yg2t Theo mình nghĩ là thị trường Windows Phone không mấy thu hút bạn ơi 😃
KLQ, chiều giờ fb android đơ lòi, ai bị thế k nhỉ?
Load newsfeed mãi k đc.
Mình cũng thế. Ko load được feed.
Nhớ là đã có phiên bản Facebook lite rồi mà nhỉ
Chỉ app fb bị chứ xem trên browser cả đt hay pc vẫn ok.
ios, wp có bị k nhỉ
thachd
ĐẠI BÀNG
9 năm
ios không bị


Sent from my iPhone using Tinhte.vn
wingzero
ĐẠI BÀNG
9 năm
Vi phạm DRY rồi bạn. Lện if thứ 2 của bạn bị thừa vế sau. Nếu year >= 2013 nó ko thể xuông nổi lệnh else đầu tiên. Do đó ko cần viết
btw, cái này là dùng big data để analyze. chỉ có fb mới rảnh để làm mấy vụ này. Và community rất cảm ơn a í vì đã share free cho ae.
LG Optimus G 2012 so với Galaxy V 2014 thì sao nhỉ?
Cần quái gì dòng else ở cuối nữa nhỉ?

if (year >= 2013) {
// Chạy toàn bộ các hiệu ứng chuyển động
} else if (year > 2010) {
// Chỉ chạy các hiệu ứng đơn giản
}

là xong
@kaizvn Không sai nhé. Về mặt logic sau else - if thì không cần else vì thực chất nó chỉ là các khối if-else lồng nhau, còn tùy từng trường hợp mà vận dụng should and shouldn't. Đã gọi là should thì không bắt buộc nó cũng chỉ là recommendation, should and shouldn't cũng chỉ là best practice của một nhóm dev hoặc tổ chức họ đưa ra khi họ thấy thuận tiện lúc họ làm việc, những nhóm khác, dev khác không thấy như vậy không có nghĩa là họ sai, khi nào compile error khi đấy mới có quyền nói sai.
@kaizvn Vâng! không tranh cãi được thì cố gắng nói nữa làm gì? If không cần else ai dám nói sai? cái should or should not của bạn chắc gì đã đúng, đến code example về if-else của java cũng viết không else đấy thôi, else mà ko làm gì cả thì không cần phải viết. Còn bạn cho là mình đúng, xin mời đưa cái rule mà bạn nghĩ "làm thế nào cho đúng" ra đi, trên nguyên tắc, compile ko error tôi có thể phản bác đưoạc cái rule của bạn đấy
DAVIDHUY08
TÍCH CỰC
9 năm
Thắc mắc là thông số Year nó lấy ở đâu... Sr không xài Android nên bác nào biết chỉ dùm. 😁
-KingJX-
ĐẠI BÀNG
9 năm
@DAVIDHUY08
Bạn chỉ nên check Code này 1 lần ở màn hình Splash Screen sau đó lưu nó vào SharePreferences , sau này chỉ gọi ra dùng thôi chứ không cần chạy check Năm của máy nữa 😃
hoatongoc
TÍCH CỰC
9 năm
@DAVIDHUY08 Nó chả tốn bao nhiêu tài nguyên máy đâu bạn, chỉ là vài phép tính đơn giản thôi
DAVIDHUY08
TÍCH CỰC
9 năm
@hoatongoc Đơn giản thế thì các bác nhà ta nghĩ ra lâu rồi nhỉ.
hoatongoc
TÍCH CỰC
9 năm
@DAVIDHUY08 Phép tính đơn giản nhưng thuật toán của nó thì không nhé bạn, đừng có nhầm 😁
Nhìn cái hình minh họa thì có vẻ là M8 chứ ko phải M9 (2 e này giống nhau quá, khó mà phân biệt).
@Duy Luân mình góp ý bác là nên gắn thêm cái link của library vào thay vì dùng tag, để khỏi phải search tên thư viện nữa: https://github.com/facebook/device-year-class
Vậy là DEV phải viết code nhiều gấp 3 lần 😁

nếu bạn nói cấu hình thấp nên bị lỗi thì ko đúng, rất nhiều thiết bị cấu hình ko thấp vẫn bị, ngay trên store hiện tại cũng đang đang đầy issue về load feed. Bạn dùng ko bị đâu có phải người khác ko bị đâu.
thêm có vài dòng để disable animation đi thôi mà bạn

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019