pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何在 Android SDK 中編寫向后兼容的新功能?

How to code backward compatible new feature in Android SDK?(如何在 Android SDK 中編寫向后兼容的新功能?)
本文介紹了如何在 Android SDK 中編寫向后兼容的新功能?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我想使用 SDK 11 中包含的操作欄功能.但是,我還希望該應(yīng)用能夠在 SDK 10 (2.3.3) 的早期設(shè)備上運行.我愿意放棄早期設(shè)備的操作欄功能,因為它不是一個重要的功能.我已經(jīng)閱讀了有關(guān)反射、包裝類和其他一些技術(shù)的所有內(nèi)容.我現(xiàn)在對如何完成這項工作感到困惑.我正在使用 Eclipse.

I want to use the actionbar feature included in SDK 11. However I also want the app to run on earlier devices from SDK 10 (2.3.3). I am willing to give up the actionbar feature for the earlier devices as it is not an important feature. I have done all the reading about reflection, wrapper class and some other techniques. I am now stumped on exactly how to make this work. I am using Eclipse.

如果我沒有將 Eclipse 中的目標(biāo)設(shè)置為 sdk 11 或更高版本,那么我引用 actionBar 的任何地方都會出現(xiàn)編譯錯誤.如果我將目標(biāo)設(shè)置為 sdk 11 或更高版本,它會編譯但不會顯示它可以在早期設(shè)備上運行.我一直設(shè)置 android:minSdkVersion=10.

If I don't set the target in Eclipse to sdk 11 or greater, then any place I have a reference to actionBar gives a compile error. If I put the target to sdk 11 or greater it compiles but won't show that it can run on earlier devices. I have android:minSdkVersion=10 set all the time.

有人能給我一些關(guān)于如何引用 actionBar 并讓它針對以前的 sdk 級別的見解嗎?提前致謝.

Can someone give me some insight on how to make the references to actionBar and yet get it to target a previous sdk level? Thanks in advance.

推薦答案

是的!你絕對可以做到這一點.嘗試遵循下面概述的模式.

Yes! You can definitely do this. Try following the pattern outlined below.

在您的 AndroidManifest.xml 文件中聲明以下內(nèi)容(將平臺版本替換為您的應(yīng)用所需的任何版本):

In your AndroidManifest.xml file declare the following (replacing the platform versions with whatever your app requires):

<!-- Build Target -->
<uses-sdk android:targetSdkVersion="14" android:minSdkVersion="7" />

通過針對 API 11 或更高版本的平臺版本,您允許 Eclipse 鏈接(編譯)本機 ActionBar 類.提供較早的最低平臺版本可讓您的應(yīng)用在較早版本的 Android 上安裝(運行).

By targeting a platform version of API 11 or higher, you are allowing Eclipse to link (compile) against the native ActionBar classes. Providing an earlier minimum platform version allows your app to be installed (run) on older versions of Android.

您的活動代碼應(yīng)如下所示:

Your Activity code should then look something like this:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (CompatibilityManager.isHoneycomb()) {
        final ActionBar actionBar = getActionBar();
        actionBar.setDisplayShowHomeEnabled(true);
        // ...
    } else {
        // The ActionBar is unavailable!
        // ...
    }
}

CompatibilityManager.java 類僅提供靜態(tài)輔助方法來確定 SDK 的當(dāng)前版本:

Where the CompatibilityManager.java class simply provides static helper methods for determining the current version of the SDK:

public class CompatibilityManager {
    public static final String KINDLE_FIRE_MODEL = "Kindle Fire";

    /**
     * Get the current Android API level.
     */
    public static int getSdkVersion() {
        return android.os.Build.VERSION.SDK_INT;
    }

    /**
     * Determine if the device is running API level 11 or higher.
     */
    public static boolean isHoneycomb() {
        return getSdkVersion() >= Build.VERSION_CODES.HONEYCOMB;
    }

    /**
     * Determine if the device is running API level 14 or higher.
     */
    public static boolean isIceCreamSandwich() {
        return getSdkVersion() >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
    }

    /**
     * Determine if the current device is a first generation Kindle Fire.
     * @return true if the device model is equal to "Kindle Fire", false if otherwise.
     */
    public static boolean isKindleFire() {
        return Build.MODEL.equals(KINDLE_FIRE_MODEL);
    }
}

您還可以考慮利用 ActionBarSherlock 庫,它提供了一個兼容的 ActionBar API,可以追溯到 Android 2.x:

You might also consider leveraging the ActionBarSherlock library, which provides a compatible ActionBar API all the way back to Android 2.x:

庫將自動使用本機操作欄可用或?qū)⒆詣影b自定義實現(xiàn)你的布局.這使您可以輕松地開發(fā)具有回溯至 2.x 的每個 Android 版本的操作欄.

The library will automatically use the native action bar when available or will automatically wrap a custom implementation around your layouts. This allows you to easily develop an application with an action bar for every version of Android back through 2.x.

玩得開心!

這篇關(guān)于如何在 Android SDK 中編寫向后兼容的新功能?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Why would you choose Android API over Google APIs in the SDK on Eclipse?(為什么在 Eclipse 的 SDK 中選擇 Android API 而不是 Google API?)
Couchbase Bucket authentication error(Couchbase 存儲桶身份驗證錯誤)
admob 6.2.1 nullpointer exception(admob 6.2.1 空指針異常)
How to setup SDK in IntelliJ IDEA?(如何在 IntelliJ IDEA 中設(shè)置 SDK?)
My phone cannot be detected in eclipse to test run(eclipse 無法檢測到我的手機進行試運行)
platform-toolsaapt.exe directory missing in android SDK(android SDK 中缺少 platform-toolsaapt.exe 目錄)
主站蜘蛛池模板: 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 咖啡加盟-咖啡店加盟-咖啡西餐厅加盟-塞纳左岸咖啡西餐厅官网 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | SEO网站优化,关键词排名优化,苏州网站推广-江苏森歌网络 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | R507制冷剂,R22/R152a制冷剂厂家-浙江瀚凯制冷科技有限公司 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 厂房出售_厂房仓库出租_写字楼招租_土地出售-中苣招商网-中苣招商网 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 | 江门流水线|江门工作台|江门市伟涛行工业设备有限公司 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 游动电流仪-流通式浊度分析仪-杰普仪器(上海)有限公司 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 翅片管散热器价格_钢制暖气片报价_钢制板式散热器厂家「河北冀春暖气片有限公司」 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 上海物流公司,上海货运公司,上海物流专线-优骐物流公司 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 越南专线物流_东莞国际物流_东南亚专线物流_行通物流 | 2-羟基泽兰内酯-乙酰蒲公英萜醇-甘草查尔酮A-上海纯优生物科技有限公司 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | J.S.Bach 圣巴赫_高端背景音乐系统_官网 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 南京欧陆电气股份有限公司-风力发电机官网 | 网架支座@球铰支座@钢结构支座@成品支座厂家@万向滑动支座_桥兴工程橡胶有限公司 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 光照全温振荡器(智能型)-恒隆仪器 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd |