Я создаю приложение с платформой Android. Хотелось бы разработать приложение akka на стороне сервера, которое будет предоставлять сервисы распределенным образом для приложения Android. Обе системы разработаны как отдельные приложения. Будет ли возможно подключить удаленный сервер akka к андроидному приложению. Пожалуйста, помогите мне, потому что я новичок и для akka, и для android.подключение приложения для Android с удаленным сервером akka
ответ
Я не уверен, если вы подумывали использовать протокол Akka remoting, но если бы это был я, я бы рассмотрел возможность использования превосходной библиотеки HTTP + REST Spray (http://spray.io/). Я играл с этой библиотекой, и она очень гладкая. Он хорошо интегрирован с Akka и позволит вам предоставлять API REST для ваших услуг. В качестве бонуса, REST также позволяет вам иметь услуги, которые легко интегрируются с вещами, отличными от вашего Android-интерфейса.
Я включил пару ссылок в качестве отправной точки. 2010 я говорить Google/O писать REST клиенты для Android приложений особенно интересно:
http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html http://www.techrepublic.com/blog/app-builder/calling-restful-services-from-your-android-app/1076
Вы можете сделать это, но вы будете страдать.
Вы должны каким-то образом получить доступ к определениям классов для akka-remote и зависимостей (netty, scala) из вашего приложения для Android. Это может быть проблематично, так как сумма зависимостей имеет более 65536 методов, которые являются колпачком Dalviks. (То есть ваш файл classes.dex
внутри apk не может иметь больше определений методов, чем 65536).
AFAIK, есть три основных подхода:
- дробить зависимости в отдельных apklibs и сделать свой APK зависит от них.
- Я не могу рекомендовать это, так как я не пробовал.
- Разделите зависимости на отдельные файлы classes.dex, которые программно загружаются из приложения.
- Вероятно выполнимый. Никогда не пробовал.
- Run ProGuard перед упаковкой вашего classes.dex
- Вам придется сражаться с ProGuard, чтобы получить право конфигурации, и вы можете получить странные сбои во время выполнения. Мой конфиг размещен ниже.
После того, как вы получите Акку-пульт и работает на вашем устройстве Android вы можете подключиться к серверу, как в примерах в документации. Однако, имейте в виду, что:
- IP-вашего Android устройства могут или не могут быть доступны во время загрузки, так что вы можете wan't сохранить эту часть вашего Akka конфигурации динамических (не сделали этого себя).
- IP-адрес вашего устройства Android может быть недоступен с сервера. Поэтому, если вы попадаете в состояние, когда серверу нужно позвонить клиенту, он никогда не преуспеет.
Мой proguard.cfg (некоторые строки не нужны - не удосужился выяснить, какие из них):
-dontoptimize
#-optimizationpasses 2
-dontobfuscate
-dontpreverify
-dontskipnonpubliclibraryclassmembers
-dontskipnonpubliclibraryclasses
-dontnote **
-verbose
-keep class com.typesafe.config.Config { *; }
-keep class com.typesafe.config.ConfigFactory { *; }
-keep class org.slf4j.Logger { *; }
-keep class org.slf4j.LoggerFactory { *; }
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#Scala
-dontwarn scala.**
-keepclassmembers class * {
** MODULE$;
}
-keep class scala.Option
-keep class scala.Function1
-keep class scala.PartialFunction
#https://issues.scala-lang.org/browse/SI-5397
-keep class scala.collection.SeqLike {
public protected *;
}
-keep class scala.Tuple*
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}
-keep class * implements org.xml.sax.EntityResolver
-keepclassmembers class * {
** MODULE$;
}
-keepclassmembernames class scala.concurrent.forkjoin.ForkJoinPool { *; }
-keepclassmembernames class scala.concurrent.forkjoin.ForkJoinWorkerThread {
int base;
int sp;
int runState;
}
-keepclassmembernames class scala.concurrent.forkjoin.ForkJoinTask {
int status;
}
-keepclassmembernames class scala.concurrent.forkjoin.LinkedTransferQueue { *; }
#Akka
-dontwarn org.jboss.netty.logging.**
-dontwarn org.osgi.**
-dontwarn javax.servlet.**
#-dontwarn org.jboss.netty.channel.socket.http.**
## Unsafe is there at runtime
-dontwarn sun.misc.Unsafe
-keep class sun.misc.Unsafe{
*;
}
-keep class akka.** { *; }
-keep class com.google.protobuf.GeneratedMessage {
*;
}
-keep class org.javatuples.** { *; }
-keep class org.jboss.**
-dontwarn org.jboss.netty.handler.codec.marshalling.**
-dontwarn org.jboss.netty.channel.socket.nio.**
-dontwarn org.jboss.netty.handler.codec.compression.JdkZlibEncoder
-dontwarn org.jboss.netty.handler.codec.spdy.SpdyHeaderBlockZlibCompressor
-dontwarn org.jboss.netty.channel.socket.http.HttpTunnelingServlet
-dontwarn org.jboss.modules.**
-dontwarn __redirected.**
-dontwarn org.slf4j.LoggerFactory
-dontwarn org.slf4j.MarkerFactory
-dontwarn org.slf4j.MDC
-dontwarn org.slf4j.impl.AndroidLogger
-dontwarn org.slf4j.impl.AndroidLoggerFactory
Удачи.
Использование Spray на Android также может столкнуться с проблемой, описанной здесь (http://code.google.com/p/android/issues/detail?id=22586). –
- 1. Подключение java-апплета с удаленным (?) Сервером mysql
- 2. Подключение приложения с сервером
- 3. Клиент Android с удаленным сервером
- 4. Говоря с удаленным сервером CouchDB с Android
- 5. Подключение Android с веб-сервером
- 6. Архитектура для синхронизации данных с удаленным сервером
- 7. Android-приложение с удаленным сервером back-end?
- 8. Обмен данными с удаленным сервером в Android
- 9. Использование Yeoman с удаленным сервером
- 10. Соединение закрыто удаленным сервером
- 11. Отладка с сервером пристани, удаленным сервером
- 12. Использование Intellij с удаленным сервером
- 13. Visual Studio с удаленным сервером
- 14. Синхронизация файлов с удаленным сервером
- 15. Подключение приложения Spark с веб-сервером
- 16. Регистрация изображения с удаленным сервером
- 17. Диалог, управляемый удаленным сервером в Android?
- 18. Проблема с удаленным веб-сервером на Android-эмуляторе
- 19. Подключение приложения для Android (Android studio) с помощью Odoo 9
- 20. Связь приложения Android с сервером
- 21. Подключение к устройству Android с сервером localhost
- 22. Подключение приложения для Android с Mailchimp
- 23. Архитектура и протоколы для связи с удаленным сервером
- 24. volley не заполняется ListView с удаленным сервером
- 25. Настройка OpenStack nova с удаленным сервером Bind
- 26. HTTP-аутентификация с удаленным сервером Gremlin
- 27. Программный обмен локальным сервером и удаленным сервером в рамках игры
- 28. Настройка Xdebug и PHPStorm с удаленным сервером
- 29. Взаимодействие с удаленным сервером по сети
- 30. Сбой WebClient с удаленным сервером «NotFound»
спасибо, что xbones попробуют и вернутся к вам –
Любая удача в этом? Я не смог заставить Spray работать на Android и не обнаружил никаких доказательств того, что кто-то еще это делает. –