Poco C ++ Android JNI - PullRequest
       146

Poco C ++ Android JNI

0 голосов
/ 22 февраля 2020

Я не совсем уверен, правильно ли я понимаю, поэтому хочу немного оптимизировать сетевые запросы для моего android приложения и до сих пор использовал OkhttpClient, HttpUrlConnection и Java Sockets, но не доволен производительностью , Я нашел хорошую библиотеку C ++ под названием Poco и подумал, что попробую ее, поэтому я кросс-скомпилирую ее для разных ABI. Пока все хорошо, дело в том, что я не уверен, нужно ли мне писать свою собственную оболочку JNI для poco, чтобы я мог использовать эти библиотеки, потому что я хочу скомпилировать ее только для разных ABI, но это не значит, что я могу использовать его прямо из коробки, или? И как лучше всего это делать? Нужно ли добавлять JNI, назовем его аннотациями методов, в файлы. cpp, чтобы использовать его? Причина, по которой я думаю о некоторой нативной библиотеке, заключается в том, что я запускаю несколько запросов http get для определения пропускной способности, поэтому я просто запускаю 4 запроса http с защелкой обратного отсчета и считываю байты из источника response.body!!.source() с помощью OkHttpClient.

        try {
            val response = client.newCall(request).execute()
            try {
                val downloadReader = response.body!!.source()
                awaitStart()
                val byteArr = ByteArray(8192)        
                while (!emitter.isCancelled && !downloadReader.exhausted()) {
                    val read = downloadReader.read(byteArr)
                    if (read == -1) {
                        emitter.onComplete()
                        break
                    } else {
                        emitter.onNext(read)
                }
            }
        } 

Таким образом, поскольку я использую Rx Java, я буду запускать каждый http-запрос в Schedulers.newThread(), агрегировать каждую эмиссию и производить выборку в определенное c время для результатов моих расчетов. Если я наблюдаю пропускную способность через Android Studio Network Profiler, я получаю слишком много колеблющихся значений, см .: enter image description here

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...