Android 优化玻璃上的大型卡片集

Android 优化玻璃上的大型卡片集,android,optimization,google-glass,Android,Optimization,Google Glass,我正在使用GDK在Glass上构建一个应用程序,它有一个供用户探索的大型数据集。有一个语音输入组件,但我想有一个手动选择部分,因为语音不适合每个数据点 我以推荐的方式生成卡片,将带有一些文本的卡片推送到ArrayList,并使用示例卡适配器显示卡片。然而,系统似乎很难生成许多卡片,而且在卡片之间刷卡时滚动会滞后很多 此外,使用文档中的示例适配器,即使是一组包含文本和图像的六张卡似乎也会滞后 对于其他开发人员,您做了什么来优化数据集以防止任何潜在的延迟 下面是一些生成卡片的代码。我正在使用分页显示

我正在使用GDK在Glass上构建一个应用程序,它有一个供用户探索的大型数据集。有一个语音输入组件,但我想有一个手动选择部分,因为语音不适合每个数据点

我以推荐的方式生成卡片,将带有一些文本的卡片推送到ArrayList,并使用示例卡适配器显示卡片。然而,系统似乎很难生成许多卡片,而且在卡片之间刷卡时滚动会滞后很多

此外,使用文档中的示例适配器,即使是一组包含文本和图像的六张卡似乎也会滞后

对于其他开发人员,您做了什么来优化数据集以防止任何潜在的延迟


下面是一些生成卡片的代码。我正在使用分页显示少量卡片。用这个小信息很难说出来。问题是什么是慢?卡片的一代?浏览卡片?滚动?有多大?也许尝试分页只是为了澄清,这是基于镜像API还是基于GDK?您可能需要添加一些代码,以明确如何添加卡。然而,总的来说,大数据集并不总是可以通过滑动玻璃来探索的好东西。我修改了我的问题以反映评论。1。通过记录/调试,100%确保每个范围仅调用一次此函数。2.即使6页落后,1页落后。情况并非如此,适配器可能有问题。
public ArrayList<Card> getRange(int min, int max) {
    ArrayList<Card> cardStack = new ArrayList<Card>();
    Card prev = new Card(getApplicationContext());
    prev.setText("Loading a lot of Pokemon... hang on");
    setContentView(prev.toView());
    try {
        JSONArray wholedex = new JSONObject(loadJSONFromAsset()).getJSONArray("Data");
     //Save time by only reading the items we want. There are ~760 items, so 40 more than regular dex number
        for(int i=min-1;i<max+50;i++) {
            if(i > wholedex.length())
                continue;
            try {

                pkmn = new Pokemon(wholedex.getJSONObject(i));
                if(pkmn.getPokedexnumber() == min)
                    browseMin = i;
                if(pkmn.getPokedexnumber() >= min && pkmn.getPokedexnumber() <= max) {
                    Card temp = new Card(getApplicationContext());
                    temp.setText(pkmn.getPokedexnumber()+"   "+pkmn.getName());
                        cardStack.add(temp);
                }
            } catch(Exception e) {
                Log.d("Pokedex", e.getMessage());
            }
        }
        return cardStack;
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return null;
 }