回答編集履歴

1

回答訂正

2018/11/21 10:45

投稿

keicha_hrs
keicha_hrs

スコア6766

test CHANGED
@@ -1,9 +1,19 @@
1
- [SOCKETクラスを使用してソケット通信をする | TECHBOOSTER](https://techbooster.org/android/2873/)
1
+ ~~[SOCKETクラスを使用してソケット通信をする | TECHBOOSTER](https://techbooster.org/android/2873/)~~
2
2
 
3
3
 
4
4
 
5
- ちょっと古い資料ですが、基本的な部分についてはこれを参考にできるのではないかと思います。
5
+ ~~ちょっと古い資料ですが、基本的な部分についてはこれを参考にできるのではないかと思います。~~
6
6
 
7
7
 
8
8
 
9
- Android独自のポイントとしては、AndroidManifest.xmlに<uses-permission>タグでネットワーク通信の許可を得る記述が必要なことです。また、AndroidではUIを操作するためのスレッド上で「時間のかかる処理」を行うとアプリが落ちてしまう制約があります。同一ネットワーク内の通信くらいであれば、多少情報量があってもUIスレッドで処理できるでしょうが、インターネット越しであったり情報量が多くなったりすると落ちる可能性が高くなるので、ThreadやAsyncTaskといった別スレッド実装をしなければならないこともあります。その辺りも並行して調査するべきでしょう。
9
+ ~~Android独自のポイントとしては、AndroidManifest.xmlに<uses-permission>タグでネットワーク通信の許可を得る記述が必要なことです。また、AndroidではUIを操作するためのスレッド上で「時間のかかる処理」を行うとアプリが落ちてしまう制約があります。同一ネットワーク内の通信くらいであれば、多少情報量があってもUIスレッドで処理できるでしょうが、インターネット越しであったり情報量が多くなったりすると落ちる可能性が高くなるので、ThreadやAsyncTaskといった別スレッド実装をしなければならないこともあります。その辺りも並行して調査するべきでしょう。~~
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ (2018/11/21 訂正)
18
+
19
+ Android 3.0以降では、UIスレッド上ではネットワークへの接続が行えないようになっているようで、上記に記した資料のプログラムは現在のAndroid SDKでは正しく動作しないものでした。ネットワークに繋ぐ処理の部分は、ThreadやAsyncTaskを使って別スレッドとして実装する必要がありました。申し訳ありませんでした。