2015-10-20 24 views
25

Tôi có một vài thư viện gốc khá lớn và đầy hơi kích thước nhị phân của ứng dụng. Tôi đã xem xét APK splitting nhưng việc duy trì và QAing nhiều APK không phải là điều tôi muốn làm.Sử dụng kiến ​​trúc Android?

Vì vậy, tôi muốn loại trừ các kiến ​​trúc không sử dụng trong bản phát hành xây dựng hương vị của tôi bằng cách sử dụng thuộc tính ndk.abiFilters Gradle. (Gỡ lỗi xây dựng tôi muốn để lại một mình để tôi có thể chạy trình mô phỏng tăng tốc HAXM trên x86).

Tôi đã nghĩ đến việc chỉ có armeabi-v7a và arm64-v8a trong hương vị phát hành của mình, nhưng tôi không chắc liệu đáng lo ngại về thị phần của các kiến ​​trúc khác mà tôi đang giảm. Sau rất nhiều tìm kiếm xung quanh tôi không thể tìm thấy bất kỳ tham chiếu đến thị phần của ARMv6 (armeabi), MIPS, x86 hoặc x86_64. Trực giác của tôi nói với tôi rằng ba cái sau gần như không tồn tại, nhưng tôi không chắc chắn về ARMv6.

Tôi đã tìm thấy this link on a forum có danh sách các điện thoại sử dụng nhiều kiến ​​trúc khác nhau. Có điều gì đáng tin cậy hơn ở đâu đó không? Có thể với% người dùng tương tự bảng điều khiển phiên bản Android?

Bất cứ điều gì khác tôi có thể bỏ lỡ nếu tôi chỉ xây dựng libs bản địa của mình cho armeabi-v7a và arm64-v8a (hoặc armeabi, armeabi-v7a và arm64-v8a)?

Trả lời

23

Trước hết, nếu bạn đang lo lắng về kích thước nhị phân, bạn không thực sự cần arm64-v8a, tất cả các thiết bị đó có thể chạy các tệp nhị phân armeabi-v7a tốt. Chỉ khi bạn thực sự cần phải nhồi nhét hiệu suất thêm cuối cùng của nó, nó có thể là đáng giá.

Đối với armeabi và ARMv6; Bản thân Android không chính thức hỗ trợ nó nữa, kể từ Android 4.4 (tháng 10 năm 2013) - và vì Android 4.0 nên ít phổ biến hơn (từ phiên bản đó, nguồn AOSP yêu cầu sửa đổi để vẫn xây dựng cho ARMv6). Vì vậy, trong thực tế, nếu bạn không hỗ trợ các phiên bản dưới 4.4, bạn có thể thả phiên bản đó mà không bị mất mát đáng kể nào.

Ngoài ra, đối với x86; nhiều người trong số những thiết bị này có khả năng mô phỏng đáng kể các bộ mã nhị phân cánh tay, vì vậy chúng có thể quản lý với phiên bản armeabi-v7a cũng tốt.

+2

Vì vậy, bạn đang nói armeabi-v7a là tất cả những gì thực sự cần trừ khi hỗ trợ <4.4 hoặc cần thêm sự hoàn hảo từ v8a? –

+2

Khá nhiều. Một số thiết bị x86 có thể không hỗ trợ các tệp nhị phân cánh tay nhưng tôi nghĩ hầu hết các thiết bị đó đều hoạt động. Ngoài ra còn có các thiết bị mips, và tôi không nghĩ rằng chúng bao gồm mô phỏng cánh tay. Mặc dù chúng khá hiếm (có lẽ một đơn hàng magniture hiếm hơn các thiết bị x86 mặc dù tôi không tìm thấy bất kỳ thống kê nào để sao lưu nó). – mstorsjo

+0

@mstorsjo bạn có thể giải thích cách sử dụng tệp thư viện armeabi-v7a cho tất cả các kiến ​​trúc không? Trong phương pháp tiếp cận hiện tại của tôi, tôi phải sao chép thư viện vào jniLibs/armeabi, jniLibs/armeabi-v7a và jniLibs/x86, làm cho APK lớn hơn. –

22

Thật không may, Android Dashboard, hữu ích vì nó không cung cấp thông tin kiến ​​trúc cũng như Google Analytics.

Unity statistics được sử dụng để cung cấp statistics per architecture and CPU features. Tuy nhiên, lưu ý rằng đây không phải là số liệu thống kê chung, nhưng chỉ bao gồm người dùng ứng dụng/trò chơi Unity.

Thông tin dường như không có sẵn trong liên kết công khai nữa, vì vậy tôi đã thay thế các liên kết trực tiếp bằng ảnh chụp nhanh mới nhất trong archive.org.

+0

Dường như Unity đã xóa nội dung khỏi các liên kết đó. – Tony

+0

Cảm ơn thông báo. Tôi sẽ cập nhật các liên kết với các ảnh chụp nhanh mới nhất từ ​​archive.org –