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 目錄)
主站蜘蛛池模板: 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 仿真植物|仿真树|仿真花|假树|植物墙 - 广州天昆仿真植物有限公司 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 运动木地板厂家,篮球场木地板品牌,体育场馆木地板安装 - 欧氏运动地板 | 合金ICP光谱仪(磁性材料,工业废水)-百科| CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 纸箱抗压机,拉力机,脂肪测定仪,定氮仪-山东德瑞克仪器有限公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 免费个人pos机申请办理-移动pos机刷卡-聚合收款码办理 | 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 模具硅橡胶,人体硅胶,移印硅胶浆厂家-宏图硅胶科技 | 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 西安中国国际旅行社(西安国旅)| DWS物流设备_扫码称重量方一体机_快递包裹分拣机_广东高臻智能装备有限公司 | ptc_浴霸_大巴_干衣机_呼吸机_毛巾架_电动车加热器-上海帕克 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 湖南自考_湖南自学考试 | 超声波焊接机_超音波熔接机_超声波塑焊机十大品牌_塑料超声波焊接设备厂家 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | SPC工作站-连杆综合检具-表盘气动量仪-内孔缺陷检测仪-杭州朗多检测仪器有限公司 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-沼河浸过滤器 | 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 电子海图系统-电梯检验系统-智慧供热系统开发-商品房预售资金监管系统 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家| 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | bng防爆挠性连接管-定做金属防爆挠性管-依客思防爆科技 |