当通过Android Studio开发TCP通讯软件时,我们可以利用Android Studio提供的丰富功能和工具来简化开发过程。下面是一个详细的步骤指南:
1.下载和安装Android Studio:你可以从Android开发者官网(https://developer.android.com/studio)下载最新版本的Android Studio。根据操作系统的要求进行安装。
2.创建新项目:打开Android Studio后,点击“Start a new Android Studio project”或选择“File”菜单中的“New”选项来创建一个新项目。提供项目名称和存储位置,并选择目标设备的最低API级别。
3.设计用户界面:使用Android Studio提供的可视化界面设计器(Layout Editor)可以快速创建应用程序的用户界面。通过拖放和调整布局组件,你可以轻松地设计界面并预览其外观。
4.添加网络权限:在AndroidManifest.xml文件中,确保添加网络权限。在标签内添加以下代码:
<uses-permission android:name="android.permission.INTERNET"/>
这将允许你的应用程序进行网络通信。
5.创建TCP连接:在代码中,你需要创建一个Socket类的对象来建立TCP连接。这个对象将用于发送和接收数据。
Socket socket = new Socket(IP_ADDRESS, PORT_NUMBER);
其中,IPADDRESS代表服务器的IP地址,PORTNUMBER是服务器监听的端口号。
6.发送和接收数据:使用输入/输出流来发送和接收数据。可以使用BufferedReader和PrintWriter等类来读取和写入数据。
// 发送数据
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hello, server!");
// 接收数据
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String response = in.readLine();
7.关闭连接:在通信完成后,记得关闭连接以释放资源。
socket.close();
明确自己要修改的地方,其中在进行创建新的项目的时候会出现如下图的目录栏:
AndroidManifest.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:usesCleartextTraffic="false"
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/tcp"
android:roundIcon="@drawable/tcp"
android:supportsRtl="true"
android:theme="@style/Theme.An_1"
tools:ignore="UnusedAttribute">
<activity android:name=".MainActivity" />
<activity
android:name=".MainActivity_1"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
代码解释
-
<manifest>
:这是XML文件的根元素,它标识了该文件是一个Android清单文件。 -
xmlns:android="http://schemas.android.com/apk/res/android"
:定义了XML文件中使用的命名空间,其中android命名空间包含了Android特定的元素和属性。 -
xmlns:tools="http://schemas.android.com/tools"
:定义了tools命名空间,可以通过该命名空间引用Android Studio提供的辅助工具。 -
<uses-permission android:name="android.permission.INTERNET"/>
:声明应用程序需要使用Internet权限,允许应用程序进行网络通信。 -
<application>
:代表应用程序元素,它包含了应用程序的配置信息。android:usesCleartextTraffic="false"
:禁止应用程序使用明文流量进行网络通信。android:allowBackup="true"
:允许应用程序进行备份和恢复。android:label="@string/app_name"
:指定应用程序的显示名称,这个字符串可以在字符串资源文件中定义。android:icon="@drawable/tcp"
:指定应用程序的图标,它引用了一个名为“tcp”的drawable资源。android:roundIcon="@drawable/tcp"
:指定应用程序的圆形图标,同样引用了“tcp”的drawable资源。android:supportsRtl="true"
:支持从右到左的布局,适用于支持从右到左的语言(如阿拉伯语)。android:theme="@style/Theme.An_1"
:指定应用程序使用的主题样式,它可以在styles.xml文件中定义。tools:ignore="UnusedAttribute"
:忽略在构建时未使用的属性的警告。
-
<activity>
:定义了一个应用程序的Activity组件,用于展示用户界面。android:name=".MainActivity"
:指定了一个名为MainActivity的类作为活动组件。android:name=".MainActivity_1"
:指定了另一个名为MainActivity_1的类作为活动组件。android:exported="true"
:代表该活动可以被其他应用程序组件访问。<intent-filter>
:指定了活动的意图过滤器,用于指定Activity作为应用程序的启动器(launcher)。<action android:name="android.intent.action.MAIN" />
:指定了Action为MAIN,表示活动可以作为应用程序的主要入口点。<category android:name="android.intent.category.LAUNCHER" />
:指定了Category为LAUNCHER,表示活动可以作为应用程序的启动器图标。
MainActivity.java代码如下:
package com.example.an_1;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.style.ForegroundColorSpan;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ScrollView;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity