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

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>
            欧美在线三级| 久久久久久久综合狠狠综合| 欧美人成在线视频| 麻豆精品网站| 能在线观看的日韩av| 久久综合九色综合久99| 模特精品裸拍一区| 欧美日韩精品欧美日韩精品一| 亚洲福利视频一区| 久久久99久久精品女同性| 欧美黄色精品| 一区二区三区视频在线| 欧美成人三级在线| 亚洲欧美日韩中文在线制服| 亚洲精品视频一区二区三区| 亚洲精品自在久久| 午夜一区不卡| 久久综合一区| 亚洲精品1区2区| 一区二区三区欧美视频| 午夜亚洲福利| 欧美成人精品三级在线观看| 国产精品久久久久久久久久免费看| 国产一区二区福利| 欧美黄色网络| 亚洲专区免费| 久久久亚洲国产天美传媒修理工 | 亚久久调教视频| 欧美专区第一页| 久久综合中文字幕| 亚洲精品在线观| 一本一本久久| 久久久精品免费视频| 久热re这里精品视频在线6| 免费观看欧美在线视频的网站| 欧美日一区二区在线观看 | 亚洲午夜精品网| 麻豆国产精品777777在线| 亚洲少妇一区| 噜噜噜在线观看免费视频日韩| 国产精品久久9| 亚洲精品久久久久久下一站 | 久久综合伊人77777蜜臀| 国产精品看片资源| 一本色道久久综合狠狠躁的推荐| 香蕉亚洲视频| 一区二区三区福利| 欧美老女人xx| 亚洲日本中文字幕区| 免费成人黄色片| 亚洲一二三区在线观看| 欧美日韩在线精品| 亚洲精品久久久久久下一站 | 午夜精品理论片| 国产精品成人播放| 一本色道久久综合| 亚洲国产精品日韩| 久久久精品久久久久| 国产亚洲欧美一区二区| 亚洲欧美视频在线| 亚洲一区二区网站| 国产美女精品在线| 久久成人精品无人区| 午夜激情亚洲| 国产综合一区二区| 欧美mv日韩mv亚洲| 亚洲天堂av在线免费观看| 日韩视频精品在线| 欧美成人亚洲成人| 久久成人免费| 伊人久久成人| 亚洲国产高清自拍| 欧美日韩国产限制| 亚洲欧美制服另类日韩| 亚洲免费影视| 国内外成人免费激情在线视频 | 亚洲精品资源美女情侣酒店| 欧美精品亚洲精品| 亚洲视屏在线播放| 亚洲一区二区三区久久 | 尤物在线精品| 亚洲精品裸体| 夜夜狂射影院欧美极品| 国产精品欧美日韩久久| 久久精品国产久精国产爱| 久久人体大胆视频| 一区二区三区久久网| 午夜精品电影| 亚洲黄色免费| 亚洲午夜av电影| 国产偷自视频区视频一区二区| 久久久久久电影| 久久尤物电影视频在线观看| 99成人免费视频| 宅男精品视频| 在线成人性视频| 日韩一级黄色片| 狠狠色伊人亚洲综合成人| 亚洲国产天堂久久综合网| 国产精品女主播在线观看 | 日韩天堂在线观看| 国产欧美日韩一区二区三区在线观看 | 欧美日韩日本网| 亚洲摸下面视频| 久久久久久亚洲精品不卡4k岛国| 日韩午夜电影av| 久久精品视频在线观看| 在线视频你懂得一区| 久久精品国产第一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 亚洲午夜激情网页| 日韩一二在线观看| 久久精品久久综合| 亚洲欧美区自拍先锋| 免播放器亚洲| 久久成人在线| 欧美日韩亚洲一区二区三区在线观看 | 亚洲精品国产精品乱码不99按摩| 国产精品成人aaaaa网站| 久久精品电影| 欧美三级视频在线播放| 免费在线观看一区二区| 国产日韩欧美精品一区| 亚洲激情在线激情| 狠狠色丁香久久婷婷综合_中| 亚洲一区在线看| 亚洲中字黄色| 国产精品久久久久久久久免费樱桃| 亚洲国产成人久久综合| 永久免费精品影视网站| 午夜在线不卡| 久久精品国产99国产精品澳门| 国产精品高潮呻吟久久av黑人| 亚洲精品一区二区三区四区高清 | 亚洲在线中文字幕| 亚洲一区二区精品在线| 欧美日韩国产色视频| 最新国产精品拍自在线播放| 亚洲精品视频在线播放| 欧美激情中文字幕一区二区| 亚洲电影自拍| 亚洲精品免费电影| 欧美好吊妞视频| 亚洲理论电影网| 亚洲自拍都市欧美小说| 国产精品美女久久| 亚洲一区免费观看| 欧美亚洲一区| 国产在线国偷精品产拍免费yy| 午夜在线观看欧美| 久久亚洲精品视频| 黄色成人在线| 毛片基地黄久久久久久天堂| 亚洲大胆av| 99视频在线精品国自产拍免费观看 | 女女同性女同一区二区三区91| 影音先锋日韩资源| 欧美精品在线免费观看| 亚洲深爱激情| 久久国产精品99久久久久久老狼| 国产一区在线播放| 欧美 亚欧 日韩视频在线| 日韩视频免费观看高清完整版| 亚洲在线播放电影| 国产午夜亚洲精品不卡| 模特精品在线| 亚洲小说欧美另类婷婷| 老司机精品视频网站| 9l国产精品久久久久麻豆| 国产麻豆精品视频| 欧美成人a视频| 亚洲欧美精品在线观看| 欧美激情第3页| 亚洲欧美日本在线| 欧美在线免费视频| 欧美日韩免费高清| 亚洲在线观看视频网站| 免费成人激情视频| 亚洲网站在线| 在线播放不卡| 欧美日韩性生活视频| 久久成人精品电影| 亚洲日本aⅴ片在线观看香蕉| 欧美中文字幕在线播放| 亚洲免费观看高清在线观看| 国产精品欧美日韩久久| 麻豆成人精品| 欧美与欧洲交xxxx免费观看| 亚洲三级免费电影| 免费成人av资源网| 久久精品国亚洲| 亚洲宅男天堂在线观看无病毒| 亚洲国产精品久久精品怡红院| 欧美午夜不卡影院在线观看完整版免费| 久久av红桃一区二区小说| 99视频一区二区| 亚洲激情在线| 亚洲成色www8888| 美女在线一区二区| 久久精品视频va|