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

Codejie's C++ Space

Using C++

EL : be able to support 2.3.x again


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

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

    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;
    }

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

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


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

    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 閱讀(1199) 評論(0)  編輯 收藏 引用 所屬分類: G7 、EL

公告

Using C++

導航

統計

留言簿(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>
            在线视频亚洲一区| 亚洲毛片在线看| 久久久综合香蕉尹人综合网| 亚洲自拍偷拍色片视频| 一区二区三区波多野结衣在线观看| 亚洲精品中文字| 亚洲电影免费观看高清完整版在线观看 | 麻豆精品91| 欧美va亚洲va国产综合| 欧美极品一区| 国产精品日韩电影| 激情欧美亚洲| 99riav久久精品riav| 午夜久久久久久久久久一区二区| 久久国产精品高清| 亚洲高清在线| 亚洲自拍另类| 久久躁狠狠躁夜夜爽| 欧美日韩成人一区二区| 国产日韩欧美中文在线播放| 伊人久久婷婷| 亚洲欧美国产毛片在线| 能在线观看的日韩av| 一本色道久久综合亚洲精品按摩| 欧美中在线观看| 欧美三级在线播放| 亚洲国产欧美久久| 欧美影院精品一区| 亚洲人成网站精品片在线观看| 亚洲自拍偷拍网址| 欧美国产精品va在线观看| 在线观看亚洲精品| 午夜精品一区二区三区在线 | 亚洲电影在线| 亚洲天堂网站在线观看视频| 免费精品99久久国产综合精品| 亚洲视频中文字幕| 欧美国产高清| 亚洲国产精品成人一区二区| 欧美一区1区三区3区公司| 亚洲高清中文字幕| 欧美专区18| 国产午夜精品美女视频明星a级| 亚洲视频二区| 亚洲精品久久久久久久久久久久久 | 欧美一级片在线播放| 亚洲黑丝在线| 久久综合狠狠综合久久激情| 国产区二精品视| 亚洲图片在线| 亚洲乱码一区二区| 欧美国产精品一区| 亚洲国产成人一区| 美日韩丰满少妇在线观看| 香蕉久久夜色精品| 国产美女一区二区| 久久精品成人| 久久大综合网| 伊人蜜桃色噜噜激情综合| 老司机一区二区三区| 久久精品中文字幕一区二区三区| 国产精品视频xxxx| 欧美制服丝袜| 欧美一区二区视频免费观看| 国产精品日产欧美久久久久| 性久久久久久久久久久久| 亚洲中午字幕| 国内精品视频久久| 老司机成人网| 欧美日韩精品久久| 亚洲欧美成人精品| 欧美一级久久久久久久大片| 韩国av一区二区三区| 麻豆av一区二区三区| 久久亚洲一区二区三区四区| 亚洲精品乱码久久久久久黑人| 亚洲欧洲在线观看| 国产精品午夜视频| 欧美69视频| 欧美午夜不卡影院在线观看完整版免费 | 老**午夜毛片一区二区三区| 亚洲欧洲另类国产综合| 亚洲精品国产无天堂网2021| 国产精品视频福利| 欧美99久久| 欧美婷婷六月丁香综合色| 欧美一区二区三区在线看 | 一区二区三区精品在线 | 99热这里只有精品8| 国产精品免费网站在线观看| 久久精品一级爱片| 男人插女人欧美| 亚洲欧美另类在线观看| 久久久精品动漫| 中日韩男男gay无套| 性欧美大战久久久久久久久| 亚洲精品国产拍免费91在线| 亚洲欧美日韩精品久久久久| 亚洲国产合集| 亚洲欧美另类久久久精品2019| 亚洲国产一区在线观看| 亚洲视频福利| 亚洲国产日韩欧美在线动漫| 午夜精品福利视频| 99国产精品视频免费观看一公开| 午夜精品999| 一本大道久久a久久精品综合| 午夜精品久久久久久久白皮肤| 最新亚洲电影| 欧美亚洲日本一区| 在线性视频日韩欧美| 欧美成人网在线| 麻豆精品一区二区av白丝在线| 国产精品久久二区| 亚洲精品欧美| 一色屋精品亚洲香蕉网站| 亚洲性色视频| 亚洲亚洲精品在线观看| 欧美韩国日本一区| 欧美电影免费| 在线观看欧美视频| 久久国产乱子精品免费女| 欧美一区二区三区四区在线观看地址 | 国产精品久久久久天堂| 亚洲国产一区二区三区在线播 | 亚洲精品裸体| 亚洲精品久久在线| 久热精品在线| 免费观看成人网| 狠狠色2019综合网| 欧美一级理论片| 久久久99免费视频| 国产日韩欧美制服另类| 性18欧美另类| 久久成人资源| 国产一区二区精品久久| 亚洲欧美国产视频| 午夜精品视频在线观看| 国产精品推荐精品| 欧美在线播放视频| 狂野欧美一区| 91久久精品一区二区三区| 你懂的国产精品| 亚洲激情成人| 亚洲综合导航| 久久国产手机看片| 欧美综合激情网| 国内精品久久久久影院优| 久久九九久久九九| 欧美福利在线| 亚洲无线视频| 国产亚洲欧美一区| 噜噜噜在线观看免费视频日韩 | 欧美一级淫片播放口| 国产一区二区三区在线观看免费| 久久激情中文| 91久久夜色精品国产九色| 亚洲在线第一页| 国产一区二区三区四区| 欧美sm重口味系列视频在线观看| 日韩亚洲欧美精品| 久久精品国产一区二区三| 亚洲国产精品欧美一二99| 欧美日韩一区二区三区四区五区| 亚洲午夜未删减在线观看| 久久欧美中文字幕| 日韩一区二区免费高清| 国产精品一二三四| 麻豆av一区二区三区久久| 一区二区国产日产| 久久免费国产| 99热在线精品观看| 国产乱码精品一区二区三| 玖玖综合伊人| 亚洲一二三区精品| 欧美激情第9页| 欧美一级欧美一级在线播放| 亚洲人屁股眼子交8| 国产精品综合网站| 欧美国产视频一区二区| 欧美综合国产| 亚洲专区欧美专区| 亚洲精品资源美女情侣酒店| 久久综合免费视频影院| 亚洲欧美日韩国产成人精品影院| 亚洲激情一区二区| 曰本成人黄色| 国产欧美日韩视频| 欧美日韩国产一区二区| 久久精品女人的天堂av| 一区二区日韩欧美| 亚洲缚视频在线观看| 久久欧美肥婆一二区| 欧美一站二站| 亚洲欧美在线免费观看| 亚洲午夜高清视频| 亚洲毛片av| 亚洲青涩在线| 亚洲国产成人精品视频| 在线播放中文一区|