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

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>
            国内自拍一区| 亚洲图片在线| 亚洲午夜久久久久久久久电影网| 欧美激情四色| 欧美一级黄色网| 国产精品视频一区二区三区| 中文精品视频| 美女日韩欧美| 亚洲一区三区视频在线观看| 欧美日韩精品| 日韩一级裸体免费视频| 亚洲激情在线视频| 欧美成人在线免费观看| 伊人婷婷欧美激情| 久久久久免费| 久久久女女女女999久久| 黑人极品videos精品欧美裸| 欧美在线网址| 午夜国产一区| 国产精品高潮呻吟久久av无限| 99精品视频一区二区三区| 亚洲精品字幕| 国产精品区二区三区日本| 一区二区三区精品视频在线观看| 亚洲亚洲精品三区日韩精品在线视频| 欧美怡红院视频| 亚洲美女av在线播放| 免费视频亚洲| 亚洲永久免费精品| 欧美一区二区三区视频免费| 亚洲电影第三页| 久久成人综合视频| 亚洲一区激情| 国产欧亚日韩视频| 欧美国产丝袜视频| 国产精品久久久久av免费| 亚洲国产精品日韩| 亚洲网站在线观看| 国产精品一级久久久| 欧美成人精品一区| 国产精品第一页第二页第三页| 久久爱www.| 欧美99久久| 欧美一区二区三区视频在线 | 久久成人精品电影| 激情久久久久| 亚洲性夜色噜噜噜7777| 国产精品一香蕉国产线看观看| 久久久久久一区二区| 欧美精品麻豆| 亚洲欧美卡通另类91av| 亚洲色图综合久久| 亚洲欧洲综合另类| 欧美一区深夜视频| 亚洲午夜久久久久久久久电影网| 欧美综合国产| 亚洲欧美偷拍卡通变态| 欧美一区二区精品在线| 亚洲肉体裸体xxxx137| 久久高清国产| 欧美一区二区免费观在线| 欧美日韩国产一区精品一区| 久久精品国产亚洲精品| 久久夜色精品国产| 久久久久久免费| 国产精品婷婷午夜在线观看| 亚洲精品影视| 亚洲国产91| 亚洲人成啪啪网站| 欧美三区免费完整视频在线观看| 欧美成人国产一区二区| 国产亚洲欧美日韩一区二区| 亚洲黄色成人网| 国产欧美另类| 亚洲性感美女99在线| 亚洲视频免费看| 欧美日韩国产免费观看| 亚洲成人在线网站| 在线日本成人| 美女免费视频一区| 亚洲国产一区在线观看| 亚洲福利av| 蜜臀va亚洲va欧美va天堂| 欧美一区二区三区免费观看| 国产精品视频自拍| 午夜欧美不卡精品aaaaa| 欧美亚洲三区| 欧美色视频日本高清在线观看| 免费观看不卡av| 在线观看精品视频| 午夜精品久久久久影视| 一本色道久久综合亚洲91| 欧美福利精品| 一区二区欧美日韩| 亚洲一区国产| 国产午夜精品久久久| 久久国产日韩| 亚洲第一色中文字幕| 宅男在线国产精品| 欧美日韩综合视频网址| 亚洲午夜精品福利| 国产亚洲精品久| 欧美理论视频| 欧美与欧洲交xxxx免费观看| 亚洲欧洲日产国产综合网| 午夜在线观看免费一区| 最新日韩中文字幕| 国产欧美一区二区三区沐欲 | 久久综合成人精品亚洲另类欧美 | 欧美国产激情二区三区| 亚洲视频观看| 亚洲国产成人av在线| 国产精品男女猛烈高潮激情| 欧美成人精品| 久久久久一区二区三区| 亚洲影院色在线观看免费| 亚洲国产高清一区二区三区| 欧美一区二区三区精品| 9l国产精品久久久久麻豆| 在线观看中文字幕不卡| 国产欧美一区二区三区久久 | 久久婷婷久久| 欧美一区二区三区四区高清| 一区二区三区高清不卡| 亚洲经典视频在线观看| 麻豆av一区二区三区久久| 欧美一区二区精品在线| 亚洲主播在线| 亚洲午夜一区二区三区| 日韩一区二区久久| 亚洲激情另类| 精品999日本| 国产色婷婷国产综合在线理论片a| 欧美日韩人人澡狠狠躁视频| 欧美成人免费在线| 欧美成人官网二区| 牛人盗摄一区二区三区视频| 久久久青草青青国产亚洲免观| 欧美制服丝袜第一页| 欧美一区二区日韩| 香蕉视频成人在线观看| 午夜精品一区二区三区在线播放 | 亚洲午夜久久久久久久久电影院| 一区二区高清视频在线观看| 亚洲激情成人网| 亚洲国产日韩欧美| 亚洲国产精品高清久久久| 欧美高清视频在线播放| 免费试看一区| 美女久久一区| 亚洲激情不卡| 久久综合狠狠综合久久激情| 一区二区三区日韩欧美| 久久久夜夜夜| 欧美亚洲色图校园春色| 欧美jizzhd精品欧美巨大免费| 亚洲四色影视在线观看| 久久国产精品99国产精| 亚洲天堂成人在线观看| 久久网站热最新地址| 欧美中文在线免费| 亚洲日韩欧美视频一区| 欧美高清自拍一区| 亚洲免费电影在线观看| 中文欧美在线视频| 欧美中文字幕视频| 蜜桃av噜噜一区| 欧美日韩国产首页在线观看| 欧美视频在线观看免费| 国产精品一区二区在线| 一区二区三区在线不卡| 日韩视频在线一区二区| 午夜精品视频在线观看| 免费日韩成人| 日韩亚洲国产精品| 亚洲男人的天堂在线观看| 久久午夜视频| 欧美性大战久久久久| 韩国成人精品a∨在线观看| 亚洲三级视频| 久久九九有精品国产23| 亚洲欧洲日本在线| 久久精品国产免费观看| 欧美电影免费观看大全| 国产亚洲福利| 亚洲一区二区精品在线观看| 久久久久国产精品一区| 亚洲精品日韩激情在线电影| 欧美一区二区成人6969| 欧美日韩在线视频首页| 黄色一区二区在线| 亚洲一区尤物| 欧美激情一区二区三级高清视频 | 欧美日韩一区二区在线观看| 国产一区二区三区在线观看视频 | 亚洲无线一线二线三线区别av| 久久一区亚洲| 亚洲欧美国产精品va在线观看| 欧美激情精品久久久久久变态 | 欧美午夜激情小视频|