回答:
これを検討してください:https : //github.com/NanoHttpd/nanohttpd。非常に小さく、Javaで書かれています。問題なく使用しました。
NanoHttpdは、Androidの魅力のように機能します。私たちは、ユーザーの手で、その上に構築されたコードを製品化しています。
ライセンスは、「ウイルス」の影響なしに、NanoHttpdの商用利用を完全に許可します。
これは、JavaSEと同じようにServerSocketを使用して実行できます。このクラスはAndroidで使用できます。android.permission.INTERNET
必要とされている。
さらにトリッキーな部分は、ServerSocketで別のスレッド待機が必要で、そのaccept
メソッドからのサブソケットにサービスを提供することです。また、必要に応じてこのスレッドを停止して再開する必要があります。最も単純なアプローチは、ServerSocketを閉じることによって待機中のスレッドを強制終了するようです。アクティビティが一番上にあるときにのみサーバーが必要な場合は、ServerSocketスレッドの開始と停止をアクティビティライフサイクルメソッドにかなりエレガントに関連付けることができます。また、サーバーに複数のユーザーがいる場合は、フォークされたスレッドでリクエストを処理するとよいでしょう。ユーザーが1人だけの場合、これは不要な場合があります。
サーバーがリッスンしているIPをユーザーに通知する必要がある場合は、NetworkInterface .getNetworkInterfaces()を使用して ください。この質問は、追加のトリックを示す場合があります。
最後に、ここでは、非常に短く簡単で、他の回答で推奨完成し、エンドユーザーアプリケーション、より理解しやすいかもしれ完全な最小限のAndroidサーバは、おそらくそこにあります。
別のサーバーでhttp://tjws.sf.netを試すことができますが、実際にはすでにAndroid対応バージョンが提供されています。
Android用のRestletエディションを試すことができます。
ソースはRestletのWebサイトからダウンロードできます。
kotlinを使用している場合は、これらのライブラリを検討してください。Kotlin言語用にビルドされています。 https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServerは非常に小さいですが、機能も少ないです。
Ktorはとても素晴らしいライブラリで、使い方も簡単です