使用Eclipse + ADT + SDK开发Android APP

使用 Eclipse + ADT(Android Developer Tools)+ Android SDK 开发 Android 应用是一种较老的开发方式,曾经是 Android 开发的标配工具,但在 2015 年 Google 宣布停止支持 ADT,转而推荐 Android Studio。尽管如此,理解 Eclipse + ADT 的开发流程对维护旧项目或学习 Android 开发历史仍有价值。以下是详细的入门讲解,涵盖环境搭建、开发步骤和示例代码,适合初学者或需要使用 Eclipse 的场景。


1. 背景说明

  • Eclipse:一个开源的通用 IDE,支持 Java 和插件扩展。
  • ADT:Android Developer Tools,Eclipse 的插件,提供 Android 开发支持(如项目管理、模拟器集成)。
  • Android SDK:Android 软件开发工具包,包含编译工具、API 库和模拟器。
  • 现状
  • ADT 最后更新在 2015 年(版本 23.0.7),不支持最新 Android API(如 API 34)。
  • Eclipse + ADT 适合维护旧项目或低版本 Android 开发(API 21 或更早)。
  • 推荐:新项目应使用 Android Studio,支持最新 API 和现代工具(如 Gradle、Kotlin)。

2. 开发环境搭建

以下是使用 Eclipse + ADT + SDK 开发 Android 应用的步骤:

2.1 安装 Eclipse

  1. 下载 Eclipse
  • 访问 Eclipse 官网,下载适合 Java 开发的版本(如 “Eclipse IDE for Java Developers”)。
  • 推荐版本:Eclipse 4.4(Luna)或 4.5(Mars),与 ADT 兼容性较好。
  • 解压并启动 Eclipse(无需安装)。
  1. 安装 JDK
  • 下载并安装 JDK 8(推荐,ADT 与较新 JDK 可能不完全兼容)。
  • 配置环境变量:
    • Windows:设置 JAVA_HOME(如 C:\Program Files\Java\jdk1.8.0_XXX),将 %JAVA_HOME%\bin 添加到 PATH
    • macOS/Linux:在 ~/.bashrc~/.zshrc 中配置:
      bash export JAVA_HOME=/path/to/jdk export PATH=$JAVA_HOME/bin:$PATH

2.2 安装 Android SDK

  1. 下载 Android SDK
  • 访问 Android 开发者网站 或其他存档源(如 SourceForge) 下载独立版 Android SDK。
  • 解压到本地目录(如 C:\android-sdk/home/user/android-sdk)。
  1. 配置 SDK
  • 运行 SDK Manager(android-sdk/tools/android.batandroid)。
  • 安装目标 API(如 API 19 for Android 4.4),包括:
    • Android SDK Platform
    • Android SDK Tools
    • Android SDK Platform-Tools
    • Android SDK Build-Tools
    • 模拟器映像(如 ARM 系统映像)
  • 可选:安装 Google APIs、Extras(如 Google Play Services)。

2.3 安装 ADT 插件

  1. 打开 Eclipse
  • 启动 Eclipse,选择工作空间(Workspace)。
  1. 安装 ADT
  • 打开 “Help” > “Install New Software”。
  • 点击 “Add”,输入:
    • Name:ADT
    • Location:https://dl-ssl.google.com/android/eclipse/(可能不可用,需离线安装)。
  • 选择 “Developer Tools”,安装 ADT 插件。
  • 离线安装(若在线源失效):
    • 下载 ADT 插件 ZIP 文件(搜索 “ADT 23.0.7 zip”)。
    • 在 “Install New Software” 中选择 “Add” > “Archive”,加载 ZIP 文件。
  • 安装后重启 Eclipse。
  1. 配置 ADT
  • 打开 “Window” > “Preferences” > “Android”。
  • 设置 SDK 路径(如 C:\android-sdk)。
  • 验证 SDK 是否正确加载(应显示已安装的 API 级别)。

2.4 配置模拟器或真机

  • 模拟器
  • 打开 “Window” > “Android Virtual Device (AVD) Manager”。
  • 创建 AVD:
    • 选择设备(如 Nexus 5)。
    • 选择目标 API(如 Android 4.4 – API 19)。
    • 配置 CPU(ARM 或 x86)、RAM 等。
  • 启动 AVD 测试。
  • 真机
  • 启用设备 “开发者选项” 和 “USB 调试”。
  • 安装设备驱动(Windows 需要)。
  • 连接设备,Eclipse 应自动识别。

3. 创建 Android 项目

  1. 新建项目
  • 在 Eclipse 中,选择 “File” > “New” > “Android Application Project”。
  • 填写:
    • Application Name:应用名称(如 MyApp)。
    • Project Name:项目名称。
    • Package Name:包名(如 com.example.myapp)。
    • Minimum SDK:最低支持 API(如 API 16)。
    • Target SDK:目标 API(如 API 19)。
    • Compile With:编译 API。
    • Theme:选择 UI 主题(如 Holo)。
  • 选择默认 Activity(如 Blank Activity)。
  1. 项目结构
  • src/:Java 源代码。
  • res/
    • layout/:XML 布局文件。
    • values/:字符串、样式等。
    • drawable/:图片资源。
  • AndroidManifest.xml:应用配置文件。
  • libs/:外部 JAR 包。
  • project.properties:项目配置(如目标 API)。

4. 示例:简单计数器应用

以下是一个简单的 Android 应用,包含一个按钮和文本,点击按钮增加计数。

4.1 布局文件(res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <TextView
        android:id="@+id/counterText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="24sp" />

    <Button
        android:id="@+id/incrementButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Increment" />
</LinearLayout>

4.2 Activity 代码(src/com/example/myapp/MainActivity.java)

package com.example.myapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
    private TextView counterText;
    private int counter = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        counterText = (TextView) findViewById(R.id.counterText);
        Button incrementButton = (Button) findViewById(R.id.incrementButton);

        incrementButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                counter++;
                counterText.setText(String.valueOf(counter));
            }
        });
    }
}

4.3 配置文件(AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

4.4 运行应用

  1. 编译:在 Eclipse 中,点击 “Run” > “Run As” > “Android Application”。
  2. 选择设备:选择 AVD 或连接的真机。
  3. 调试
  • 使用 Eclipse 的 LogCat 视图查看日志(Log.d("TAG", "Message"))。
  • 设置断点调试。

5. 异步任务(使用 AsyncTask)

Android 开发中,耗时任务需在后台线程执行。以下是一个使用 AsyncTask(ADT 时代常用)的示例,模拟网络请求并更新 UI。

5.1 AsyncTask 示例

package com.example.myapp;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.counterText);

        new DownloadTask().execute();
    }

    private class DownloadTask extends AsyncTask<Void, Void, String> {
        @Override
        protected void onPreExecute() {
            textView.setText("Starting...");
        }

        @Override
        protected String doInBackground(Void... params) {
            try {
                Thread.sleep(2000); // 模拟耗时任务
                return "Task completed!";
            } catch (InterruptedException e) {
                return "Error: " + e.getMessage();
            }
        }

        @Override
        protected void onPostExecute(String result) {
            textView.setText(result);
        }
    }
}

5.2 注意事项

  • AsyncTask 局限:API 30 起废弃,易导致内存泄漏。
  • 替代方案(现代开发):在 Eclipse 中可使用 Thread + Handler,但新项目建议迁移到 Android Studio 使用 Kotlin Coroutines。

6. 关键开发要点

6.1 布局设计

  • 使用 XML 定义 UI,支持 LinearLayoutRelativeLayout 等。
  • 注意:ADT 不支持现代 ConstraintLayout,需手动调整布局。
  • 资源引用:@string/@drawable/@id/

6.2 权限管理

  • AndroidManifest.xml 中声明权限:
  <uses-permission android:name="android.permission.INTERNET" />
  • Android 6.0+(API 23)需动态请求运行时权限(如存储、相机)。

6.3 调试与测试

  • LogCat:查看日志,过滤错误。
  • AVD Manager:测试不同设备和 API 级别。
  • DDMS:分析内存、CPU 使用情况(在 Eclipse 的 Perspective 中)。

6.4 项目管理

  • 依赖管理:手动添加 JAR 文件到 libs/ 目录(如 android-support-v4.jar)。
  • 构建:Eclipse 使用 Ant 或早期 Gradle 构建,配置 project.properties

7. 优缺点

优点

  • Eclipse 轻量,适合低配置电脑。
  • ADT 提供直观的 Android 开发工具(如 AVD Manager、布局编辑器)。
  • 适合维护旧项目(API 19 或更早)。

缺点

  • 过时:ADT 不支持新 API(如 Android 14+)和现代工具(如 Jetpack)。
  • 功能有限:缺乏 Android Studio 的 Gradle、LiveData、View Binding 等支持。
  • 社区支持减少:问题解决依赖旧文档或论坛。
  • 调试复杂:相比 Android Studio,调试工具较弱。

8. 迁移建议

由于 Eclipse + ADT 已过时,建议:

  1. 迁移到 Android Studio
  • 导入 Eclipse 项目:Android Studio 支持导入 ADT 项目,自动转换为 Gradle 结构。
  • 学习 Kotlin 和 Jetpack 组件(如 ViewModel、LiveData)。
  1. 现代替代工具
  • Kotlin Coroutines:取代 AsyncTask。
  • WorkManager:处理后台任务。
  • ConstraintLayout:更灵活的布局。
  1. 维护旧项目
  • 使用 Eclipse + ADT 仅限支持旧设备(如 Android 4.x)。
  • 考虑重写关键功能以适配新 API。

9. 扩展示例(带 Intent 跳转)

以下是一个包含两个 Activity 的应用,点击按钮跳转并传递数据。

9.1 第二个 Activity(SecondActivity.java)

package com.example.myapp;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        TextView textView = (TextView) findViewById(R.id.resultText);
        String data = getIntent().getStringExtra("data");
        textView.setText("Received: " + data);
    }
}

9.2 第二个布局(res/layout/activity_second.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
    <TextView
        android:id="@+id/resultText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp" />
</LinearLayout>

9.3 修改 MainActivity

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button) findViewById(R.id.incrementButton);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                intent.putExtra("data", "Hello from MainActivity");
                startActivity(intent);
            }
        });
    }
}

9.4 更新 AndroidManifest.xml

<application ...>
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".SecondActivity" />
</application>

10. 总结

使用 Eclipse + ADT + Android SDK 开发 Android 应用适合维护旧项目或学习 Android 开发历史。通过配置 Eclipse、安装 ADT 和 SDK,可以快速创建简单的 Android 应用。然而,由于 ADT 已停止更新,功能受限,推荐新项目迁移到 Android Studio,使用 Kotlin 和 Jetpack 组件以支持现代 Android 开发。

如果需要更详细的代码示例(如网络请求、数据库操作)、特定功能实现,或迁移到 Android Studio 的指导,请告诉我!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注