青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Codejie's C++ Space

Using C++

EL : be able to support 2.3.x again


    EL 1.2中新增了詞典功能, 急著release, 就沒有在2.3.x下測試 (當(dāng)然了, 我的G7被我刷成4.2.2之后, 也沒有2.3.x的環(huán)境了..), 編譯沒有問題, 4.x上都OK, 然后就release了... 唉, 債總是要連本帶利地歸還的, 現(xiàn)實(shí)如此, 敲字亦是如此啊...因此這個(gè)周末, 整個(gè)周末都在修改EL無法在android 2.3.x上運(yùn)行的問題.
    知道Android有版本碎化問題, 只是沒想到這么'細(xì)節(jié)', 不碰到那真是根本想不到啊...還是前年做IOS好, 就沒考慮版本問題,當(dāng)然也可能沒碰到. 不吐槽了, 敲字的人嘛, 抱怨不能解決問題啊, 還得靠review/debug...
 
    這次發(fā)現(xiàn)了兩處不兼容的地方, 一個(gè)是java語言層面的, 另外一個(gè)則是android控件相關(guān)的.

    1. ByteBuffer
    EL在從Lingoes詞典文件中提取數(shù)據(jù)時(shí), 需要使用InflaterInputStream對象解壓原始數(shù)據(jù), 代碼如下:

    private static int decompressBlock(ByteBuffer in, int size, byte[] out) {
        final Inflater inflater = new Inflater();
        
        byte[] a = null;
        if (in.hasArray()) {
            a = in.array();
        } else {
            a = new byte[size];
            in.position(0);
            in.get(a, 0, size);
        }
        final InflaterInputStream stream = new InflaterInputStream(new ByteArrayInputStream(a, 0, size), inflater, size);
        
        try {
            while(stream.read(out) > 0);
        } catch (IOException e) {
            return -1;
        }
        inflater.end();
        return 0;
    }

    此對象的一個(gè)傳入?yún)?shù)為InputStream, 這樣正好將ByteButter對象數(shù)組化為byte[]后, 構(gòu)造出一個(gè)ByteArrayInputStream實(shí)例傳入. 那么ByteBuffer常用且推薦的方式就是直接調(diào)用其array()方法, 這樣就無需在申請和構(gòu)造個(gè)新的byte[]空間了.
    問題就在這里, 在android 2.3.x中, ByteBuffer對象是不支持直接數(shù)組化的, 在調(diào)用arry()時(shí), 會拋出NotSupportedException異常的. 因此為了保持兼容就需要在數(shù)組化前使用hasArray()方法檢查是否可以數(shù)組化, 如果不能, 那就要重新申請數(shù)組空間了.

    2. PopupMenu
    EL在播放時(shí), 支持快速跳轉(zhuǎn)到ESL課程的指定位置上. 如下圖所示.


    指定位置的選擇菜單是通過PopupMenu實(shí)現(xiàn)的, 但這個(gè)控件是在API 11才有的, 意味著低于HONEYCOMB版本的2.3.x平臺是沒法使用的. 實(shí)際這個(gè)問題可以早點(diǎn)發(fā)現(xiàn)的, 但我就是懶了, 以后relase前, 還是需要運(yùn)行下Android Lint的.
    上圖可以看出在兩種平臺下, 這個(gè)'PopupMenu'是不一樣的, 那是因?yàn)?.3.x平臺上, 我是用PopupWindow控件模擬了類似PopupMenu的功能. 以后有時(shí)間看看能不能搞的UI也一樣就好了.
    這種控件上的不兼容, 可以使用不同平臺下運(yùn)行不同代碼來解決.

    private void showPopupMenu(View v) {

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
            
            PopupMenu pm = new PopupMenu(getELActivity(), v);
            pm.getMenuInflater().inflate(R.menu.fragment_show_pop, pm.getMenu());
            pm.getMenu().getItem(0).setEnabled(audioSlowDialog != -1);
            pm.getMenu().getItem(1).setEnabled(audioExplanation != -1);
            pm.getMenu().getItem(2).setEnabled(audioFastDialog != -1);
            
            pm.setOnMenuItemClickListener(new OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    return onNavigate(item.getItemId());
                }
                
            });
            pm.show();
            
        } else {        
            final ShowPopWindow win = new ShowPopWindow(getELActivity(), v);
            win.setItemEnable(0, (audioSlowDialog != -1));
            win.setItemEnable(1, (audioExplanation != -1));
            win.setItemEnable(2, (audioFastDialog != -1));

            win.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    onNavigate(v.getId());
                    win.dismiss();
                }

            });
            win.show();
        }
    }

    本來想著更新下修改好的EL版本趕緊release了, 畢竟2.3.x還占有30%左右的份額, 是不能放棄的部分. 但還是有些心虛, 所以啊, 再檢查下, 明天再說吧..(整個(gè)周末都在fix兼容問題, 頭昏眼花啊, 睡覺去了...唉, 畢竟java沒有C++玩的那么久, 很多基本的語言級別的問題都不清楚, 還要多敲敲才行啊..)

posted on 2013-09-02 00:22 codejie 閱讀(1194) 評論(0)  編輯 收藏 引用 所屬分類: G7EL

公告

Using C++

導(dǎo)航

統(tǒng)計(jì)

留言簿(73)

隨筆分類(513)

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品超碰97尤物18| 欧美在线视频a| 久久久久久有精品国产| 亚洲在线中文字幕| 午夜精品福利在线观看| 久久激情婷婷| 男人天堂欧美日韩| 国产精品成人av性教育| 国产精品永久入口久久久| 国产综合久久久久久| 在线观看欧美一区| 中文亚洲免费| 欧美成人精品在线观看| 亚洲午夜精品久久| 牛牛国产精品| 亚洲欧美另类在线| 欧美成人综合一区| 在线观看视频日韩| 欧美亚洲专区| 中文国产亚洲喷潮| 欧美日韩大陆在线| 在线观看精品一区| 久久精品男女| 性欧美在线看片a免费观看| 欧美国产成人在线| 在线观看国产日韩| 久久一区二区三区超碰国产精品| 亚洲视频在线观看网站| 久久视频一区| 欧美中文在线观看| 一区二区三区在线免费视频| 欧美在线一区二区三区| 亚洲天堂av在线免费| 欧美顶级少妇做爰| 麻豆av福利av久久av| 亚洲欧美激情在线视频| 亚洲砖区区免费| 国产精品毛片| 黄网站色欧美视频| 农村妇女精品| 亚洲国产综合视频在线观看| 午夜精品视频在线| 一区免费观看视频| 亚洲午夜在线视频| 1000部精品久久久久久久久| 日韩一级在线观看| 99re6这里只有精品| 国产亚洲午夜| 一区二区日本视频| 亚洲国产小视频在线观看| 99国产精品久久久久久久久久| 亚洲欧美区自拍先锋| 国模大胆一区二区三区| 亚洲激情网站| 在线免费不卡视频| 在线天堂一区av电影| 亚洲国产精品999| 欧美在线视频日韩| 亚洲欧美在线磁力| 欧美日韩不卡在线| 亚洲电影在线播放| 精品99视频| 久久精品国产久精国产一老狼 | 欧美成人黑人xx视频免费观看| 欧美成人69av| 亚洲国产午夜| 美女脱光内衣内裤视频久久影院| 一区二区欧美激情| 欧美成人国产一区二区| 久久久久高清| 伊人久久大香线| 久久不见久久见免费视频1| 亚洲男人天堂2024| 国产一区二区精品久久99| 亚洲综合视频网| 亚洲在线观看| 国产女人18毛片水18精品| 久久久久久久久久久成人| 欧美亚洲系列| 蜜臀av性久久久久蜜臀aⅴ| 一区二区欧美日韩| 久久精品国产第一区二区三区| 在线观看视频一区| 亚洲精品免费一二三区| 999亚洲国产精| 国产精品video| 亚洲国产精品精华液2区45| 亚洲伦理在线免费看| 欧美日韩精品免费看| 久久精品最新地址| 亚洲高清123| 国产精品一区二区久激情瑜伽| 亚洲国产日韩欧美在线99| 亚洲图中文字幕| 亚洲精品乱码久久久久久| 国产在线播放一区二区三区| 亚洲人成网站精品片在线观看| 国产一区视频在线观看免费| 另类激情亚洲| 麻豆精品网站| 亚洲午夜女主播在线直播| 在线欧美日韩精品| 一区二区视频欧美| 国产在线精品一区二区中文| 欧美先锋影音| 欧美激情在线观看| 久久亚洲不卡| 久久精品国产一区二区三区| 亚洲欧美美女| 性久久久久久久久久久久| 国产精品高清在线观看| 欧美日韩不卡| 欧美亚洲成人免费| 国产欧美精品一区| 狠狠色丁香婷婷综合影院 | 欧美日韩在线看| 亚洲美女av在线播放| 亚洲精品视频一区| 99精品欧美| 久久av一区二区三区漫画| 欧美一区二区高清| 欧美激情一区二区三区成人| 久久理论片午夜琪琪电影网| 久久人人97超碰精品888| 亚洲国产日韩精品| 亚洲一区二区在| 久久综合网hezyo| 日韩午夜精品| 久久人体大胆视频| 香蕉久久精品日日躁夜夜躁| 久久国产精品毛片| 欧美日韩专区| 亚洲人成77777在线观看网| 一二美女精品欧洲| 欧美福利影院| 欧美在线视屏 | 一区二区三区免费看| 羞羞答答国产精品www一本| 欧美 日韩 国产在线| 午夜日本精品| 国产精品一区二区在线观看不卡 | 欧美中文字幕在线| 蜜臀av国产精品久久久久| 亚洲欧美精品在线| 欧美黑人国产人伦爽爽爽| 亚洲综合色激情五月| 欧美日韩精品系列| 欧美日韩在线精品一区二区三区| 葵司免费一区二区三区四区五区| 亚洲欧美日韩另类| 午夜精品影院| 国内精品久久久久久久果冻传媒 | 极品少妇一区二区三区| 国产精品入口尤物| 亚洲午夜久久久久久久久电影院| 亚洲一线二线三线久久久| 亚洲黄色精品| 久久久国产成人精品| 欧美1区2区3区| 欧美日韩天天操| 最新国产精品拍自在线播放| 国产一区二区三区久久| 国产精品99久久久久久人| 在线视频一区观看| 在线视频成人| 亚洲综合精品自拍| 艳女tv在线观看国产一区| 午夜精品一区二区三区四区| 亚洲国产欧美在线| 欧美伊人久久久久久午夜久久久久| 久久久久久免费| 日韩亚洲在线观看| 久久精品国产第一区二区三区最新章节 | 久久国产精品一区二区| 在线综合欧美| 国产一区91| 亚洲欧美一级二级三级| 亚洲女人小视频在线观看| 欧美色欧美亚洲另类七区| 国产精品国产三级欧美二区| 免费观看30秒视频久久| 国产亚洲成年网址在线观看| 日韩午夜激情| 亚洲欧美日韩中文视频| 欧美大片专区| 亚洲成人在线网站| 久久久久久综合| 亚洲第一在线综合网站| 亚洲第一黄色| 欧美日韩高清区| 亚洲精品视频在线看| 国产精品福利影院| 一本色道久久| 老司机免费视频一区二区| 亚洲国产毛片完整版| 国产精品久久久久aaaa樱花| 日韩视频亚洲视频| 欧美成人亚洲成人| 欧美国产第一页| 亚洲精品一区二区三区婷婷月|