小编adn*_*ran的帖子

Multidexing android应用程序的缺点

最近我读到了有关Dalvik 65K方法限制的内容.我已经知道方法调用列表只能调用第一个65536方法引用.为解决这个问题,我们提供了许多解决方案.其中一个是多索引,我们通过使用android的支持库将.dex文件拆分为多个类[classes.dex,classes1.dex ...].

我无法理解的是,由于这种多重索引,Android应用程序有什么缺点,为什么我们应该花费大量精力来减少引用方法的数量.

基本上在我的理解中,为了减少方法计数,我必须减少模块化,这使得我的代码可读性降低,从而消除了在删除第三方库代码时消耗的小时数.减少方法计数值得吗?

performance android dalvik

21
推荐指数
2
解决办法
2524
查看次数

TextUtils.isEmpty 检查 null 但 lint 无法识别

在 Android studio 中,每当我继续TextUtils.isEmpty检查时,lint 都会显示参数可能为 null。它没有意义,因为isEmpty将检查可空性。

在此输入图像描述

有没有什么方法可以在不使用断言的情况下解决这个问题。

PSImageUtils.getWidth接受aspectRatio为null,因此没有lint警告。

android lint android-studio

6
推荐指数
0
解决办法
423
查看次数

mongodb 中的并发写入

当我在集合中插入/更新文档时,锁定是应用于数据库还是集合。假设我有两个集合,它们在同一个数据库中彼此独立,并且想要同时对它们进行写操作。这可能吗?

这是我用来测试这个的代码:

var assert      = require('assert'),
    MongoClient = require('mongodb').MongoClient,
    async       = require('async');

var station_list    = require('./station_list.json'),
    trains_list     = require('./trains_list.json');

var stationList = [],
    trainsList  = [];

var MONGO_URL   = 'mongodb://localhost:27017/test';

for(var i=0; i<station_list.stations.length; i++)
    stationList.push(station_list.stations[i].station_code);

for(var i=0; i<trains_list.trains.length; i++)
    trainsList.push(trains_list.trains[i].code);

console.log('trains : ' + trainsList.length + ' stations : ' + stationList.length);

populateTrains();
populateStations();

function populateTrains() {
    async.eachSeries(trainsList, populateTrainDb, function (err) {
        assert.equal(null, err);        
    });
}

function populateTrainDb(code, callback) {
    MongoClient.connect(MONGO_URL, function (err, db) {
        assert.equal(null, err);
        var jsonData = …
Run Code Online (Sandbox Code Playgroud)

mongodb

1
推荐指数
1
解决办法
9810
查看次数

标签 统计

android ×2

android-studio ×1

dalvik ×1

lint ×1

mongodb ×1

performance ×1