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

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í)如此, 敲字亦是如此啊...因此這個周末, 整個周末都在修改EL無法在android 2.3.x上運(yùn)行的問題.
    知道Android有版本碎化問題, 只是沒想到這么'細(xì)節(jié)', 不碰到那真是根本想不到啊...還是前年做IOS好, 就沒考慮版本問題,當(dāng)然也可能沒碰到. 不吐槽了, 敲字的人嘛, 抱怨不能解決問題啊, 還得靠review/debug...
 
    這次發(fā)現(xiàn)了兩處不兼容的地方, 一個是java語言層面的, 另外一個則是android控件相關(guān)的.

    1. ByteBuffer
    EL在從Lingoes詞典文件中提取數(shù)據(jù)時, 需要使用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;
    }

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

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


    指定位置的選擇菜單是通過PopupMenu實(shí)現(xiàn)的, 但這個控件是在API 11才有的, 意味著低于HONEYCOMB版本的2.3.x平臺是沒法使用的. 實(shí)際這個問題可以早點(diǎn)發(fā)現(xiàn)的, 但我就是懶了, 以后relase前, 還是需要運(yùn)行下Android Lint的.
    上圖可以看出在兩種平臺下, 這個'PopupMenu'是不一樣的, 那是因?yàn)?.3.x平臺上, 我是用PopupWindow控件模擬了類似PopupMenu的功能. 以后有時間看看能不能搞的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%左右的份額, 是不能放棄的部分. 但還是有些心虛, 所以啊, 再檢查下, 明天再說吧..(整個周末都在fix兼容問題, 頭昏眼花啊, 睡覺去了...唉, 畢竟java沒有C++玩的那么久, 很多基本的語言級別的問題都不清楚, 還要多敲敲才行啊..)

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

公告

Using C++

導(dǎo)航

統(tǒng)計

留言簿(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>
            午夜久久福利| 久久人人九九| 国产精品久久久久久久久久免费| 亚洲伦伦在线| 亚洲人永久免费| 欧美精品色网| 亚洲欧美成人在线| 欧美一区二区三区四区在线观看| 国产欧美亚洲视频| 老司机aⅴ在线精品导航| 久久久久久国产精品一区| 亚洲高清网站| 日韩一级在线| 国产一级揄自揄精品视频| 免费欧美网站| 欧美午夜宅男影院在线观看| 欧美在线免费看| 久久久久久综合| 在线亚洲伦理| 久久久久国产精品午夜一区| 夜夜嗨av一区二区三区网站四季av | 国产精品五月天| 久久午夜精品| 欧美日韩第一区| 久久精品人人| 欧美日韩免费一区二区三区视频 | 国产一区二区中文| 欧美激情精品久久久久久蜜臀| 欧美视频在线观看 亚洲欧| 久久久女女女女999久久| 欧美激情一区二区三区不卡| 久久精品国产精品亚洲| 欧美精品二区三区四区免费看视频| 欧美亚洲一级| 欧美理论电影网| 麻豆精品视频在线观看视频| 国产精品v欧美精品v日本精品动漫| 久久综合九色九九| 国产精品高清网站| 亚洲国产另类精品专区| 国产亚洲人成网站在线观看| 99re热这里只有精品视频| 尤物99国产成人精品视频| 一区二区三区四区五区在线| 在线看不卡av| 欧美在线影院| 久久狠狠婷婷| 国产欧美精品日韩区二区麻豆天美| 亚洲第一网站| 亚洲电影av| 久久久精品国产免费观看同学| 亚洲欧美日韩国产一区| 欧美日本在线一区| 亚洲大胆女人| 一区二区在线视频播放| 西西裸体人体做爰大胆久久久| 国产精品99久久99久久久二8| 久久亚洲影音av资源网| 久久婷婷国产综合国色天香| 国产日本欧美视频| 亚洲一区二区不卡免费| 亚洲视频免费在线| 欧美午夜精品电影| 一区二区av在线| 一区二区三区毛片| 欧美日韩国产首页| 亚洲精品日韩在线| 在线一区欧美| 欧美日韩一区二区三区四区五区 | 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲国产精品视频一区| 樱桃成人精品视频在线播放| 久久另类ts人妖一区二区| 麻豆国产精品一区二区三区| 亚洲第一色在线| 美女黄毛**国产精品啪啪| 亚洲电影在线免费观看| 一本大道久久精品懂色aⅴ| 欧美日韩另类字幕中文| 亚洲一区二区精品| 欧美一级久久| 在线观看欧美激情| 欧美电影电视剧在线观看| 亚洲国产女人aaa毛片在线| av成人激情| 国产精品区一区二区三| 久久爱91午夜羞羞| 欧美v亚洲v综合ⅴ国产v| 亚洲精品久久久久久下一站 | 国产在线精品一区二区夜色| 久久婷婷丁香| 日韩视频永久免费| 欧美一区三区三区高中清蜜桃 | 欧美午夜片在线观看| 午夜精品久久| 亚洲第一精品电影| 亚洲一区二区三区三| 国际精品欧美精品| 欧美日韩大片一区二区三区| 亚洲视频在线观看网站| 免费日韩av片| 亚洲永久免费av| 伊人久久婷婷色综合98网| 欧美精品久久久久久久久久| 亚洲欧美国产精品va在线观看 | 久久一区二区三区国产精品| 亚洲精品视频在线观看免费| 国产麻豆精品视频| 欧美 日韩 国产一区二区在线视频| 一本一本久久a久久精品综合麻豆| 久久久综合视频| 亚洲视频在线观看视频| 尤妮丝一区二区裸体视频| 欧美系列精品| 欧美精品粉嫩高潮一区二区| 欧美专区中文字幕| 亚洲一本大道在线| 最新精品在线| 欧美国产日韩精品免费观看| 欧美中文日韩| 亚洲在线观看免费| 日韩一区二区高清| 在线观看亚洲视频| 国产裸体写真av一区二区| 欧美日韩视频一区二区三区| 免费成人av| 久久一区中文字幕| 欧美制服丝袜第一页| 亚洲一区影院| 亚洲视频电影图片偷拍一区| 亚洲日本一区二区三区| 欧美粗暴jizz性欧美20| 久久亚洲精品一区二区| 久久精品30| 久久精品日韩欧美| 欧美有码视频| 久久国产日本精品| 香蕉视频成人在线观看| 亚洲欧美精品在线| 亚洲永久免费视频| 亚洲在线观看| 亚洲自拍高清| 欧美一区二区成人| 欧美一区二区三区免费大片| 午夜精品一区二区三区在线| 亚洲综合欧美| 午夜精品三级视频福利| 欧美在线1区| 久久精品国产综合| 久久免费视频在线观看| 久久亚洲欧美| 欧美激情精品久久久久久蜜臀| 欧美国产日韩一二三区| 亚洲国产精品一区在线观看不卡| 亚洲国产精品久久久久| 亚洲精品一区二区三区福利| 夜色激情一区二区| 亚洲欧美中文字幕| 久久精品在线| 欧美成人首页| 国产精品v亚洲精品v日韩精品| 欧美亚男人的天堂| 国产日韩欧美精品综合| 一区二区三区自拍| 99国产精品99久久久久久粉嫩| 亚洲视频专区在线| 欧美一级电影久久| 蜜臀99久久精品久久久久久软件| 亚洲国产欧美一区二区三区久久| 99pao成人国产永久免费视频| 亚洲永久网站| 久久伊人免费视频| 欧美日韩在线看| 很黄很黄激情成人| 亚洲美女精品一区| 欧美在线视频一区二区| 欧美高清不卡| 亚洲免费在线精品一区| 久久夜色精品国产亚洲aⅴ| 欧美色欧美亚洲另类七区| 国产视频精品va久久久久久| 亚洲二区在线视频| 香蕉久久夜色精品| 欧美高清视频一区| 亚洲免费在线看| 母乳一区在线观看| 国产日韩久久| 亚洲视频1区| 欧美二区乱c少妇| 午夜精品在线视频| 欧美精品一区二区久久婷婷 | 久热精品视频在线免费观看| 国产精品久久久久77777| 亚洲国产老妈| 欧美伊人久久久久久久久影院| 亚洲日韩欧美视频一区| 久久久蜜桃一区二区人| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲韩国日本中文字幕| 久久精品一区二区三区不卡牛牛|