Tôi đang phát triển một dự án sử dụng video Flash trong chế độ xem web. Tôi giải quyết tất cả các vấn đề liên quan đến mã của tôi, nhưng chỉ làm việc dưới Honeycomb.Cách làm cho dự án của tôi tương thích với các phiên bản sdk khác nhau trong khi sử dụng các tính năng cho một phiên bản cụ thể
Đọc this Tôi đã tìm hiểu cách giải quyết các vấn đề cho Android 3.0 trở lên (bao gồm ICS), nhưng giờ đây là câu hỏi lớn ... Nếu tôi thực hiện dự án của mình tương thích với ICS, tôi phải sử dụng chỉ thị, nhưng sau đó tôi sẽ không chạy trên Gingerbread.
Để cung cấp một số thông tin thêm ... mảnh mã có vấn đề là thế này:
android:hardwareAccelerated="true"
mà là một tài sản đó đã được bao gồm trong Android 3.0.
Vì vậy, có bất cứ điều gì tôi có thể làm để tránh xây dựng hai apks khác nhau (somehitng như một apk trước HoneyComb và sau HoneyComb apk)?
Đây là một mảnh manifest Android của tôi:
<application android:label="@string/app_name"
android:icon="@drawable/elabora"
android:theme="@android:style/Theme.NoTitleBar">
<activity android:name="es.fundacionvodafone.elabora.android.controlador.InicioElaboraTest"
android:label="@string/app_name"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="es.fundacionvodafone.elabora.android.controlador.InicioElabora"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:hardwareAccelerated="true">
<!--
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
Cảm ơn trước.
Cập nhật: Tôi đã sử dụng những gì Mike giải thích, đó là để nói, xác định minSdk và targetSdk đúng cách, nhưng tôi đã nhầm lẫn bởi thực tế sau đây. Với cấu hình dự án như vậy, khi bạn chạy dự án trong nhật thực, nó sẽ nhắc cửa sổ sau: Chữ thập đỏ có nghĩa là mức mục tiêu dự ánSdk cao hơn cấp API của thiết bị. Vì vậy, tôi nghĩ rằng nó đã không chỉ làm việc trong thiết bị này, nhưng điều là bạn thực sự có thể chạy nó, và hoạt động như mong đợi.
Tại sao bạn cho rằng bạn "sẽ không chạy trên Gingerbread"? Bạn có thể có tối thiểu sdk = 8, mục tiêu SDK và xây dựng dự án mục tiêu xây dựng SD = 15. Chỉ cần chắc chắn để kích hoạt cho mỗi phiên bản bất cứ điều gì làm việc cho nó. Bạn có thể sử dụng thuộc tính boolean phụ thuộc phiên bản sẽ bật và tắt mọi thứ tùy thích. – user1076637
@ user1076637, tôi vừa phạm sai lầm khi ... Tôi cập nhật câu trả lời của mình, thiết lập minSdk và targetSdk thích hợp là một giải pháp hợp lệ. – mdelolmo