1 / 38

基于 Android 的移动应用开发

基于 Android 的移动应用开发. 应用开发环境搭建. 提纲. 开发环境搭建 简单示例程序. 提纲. Android 应用开发环境搭建 简单示例程序. Android 应用开发环境搭建. 直接使用 Android SDK Eclipse + ADT + SDK ADT Bundle Android Studio 基于 IntelliJ IDEA 注意:需要先安装 JDK ,并配置环境变量 http://www.oracle.com/technetwork/java/javase/downloads/index.html.

cais
Download Presentation

基于 Android 的移动应用开发

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 基于Android的移动应用开发 应用开发环境搭建

  2. 提纲 • 开发环境搭建 • 简单示例程序

  3. 提纲 • Android应用开发环境搭建 • 简单示例程序

  4. Android应用开发环境搭建 • 直接使用Android SDK • Eclipse + ADT + SDK • ADT Bundle • Android Studio • 基于IntelliJ IDEA 注意:需要先安装JDK,并配置环境变量 http://www.oracle.com/technetwork/java/javase/downloads/index.html

  5. 基于ADT Bundle的环境搭建 • 步骤1:下载ADT bundle http://developer.android.com/sdk/index.html • 步骤2:解压到某个文件夹下 包含eclipse、SDK及SDK Manager ,eclipse已经集成好了ADT。 • 步骤3:sdk更新 直接运行SDK Manager,或者从eclipse中启动SDK Manager

  6. 基于ADT Bundle的环境搭建 • 步骤3 :sdk更新(续)

  7. 基于ADT Bundle的环境搭建 • 步骤3 :sdk更新(续) • 使用SDK Manager更新时出现问题: Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-8.xml, reason: Connection to https://dl-ssl.google.com refused • 解决方法: 打开C:\WINDOWS\system32\drivers\etc目录下的hosts文件,添加以下内容: 203.208.46.146 www.google.com 74.125.113.121 developer.android.com 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com

  8. 基于ADT Bundle的环境搭建 • 步骤4 :配置android模拟器 打开AVD管理器

  9. 基于ADT Bundle的环境搭建 • 步骤4 :配置android模拟器 新建AVD

  10. 基于ADT Bundle的环境搭建 • 步骤4 :配置android模拟器 点击start按钮运行AVD

  11. 基于ADT Bundle的环境搭建 • 步骤5 :真机调试 • 设置android手机为USB调试模式,步骤:menu—> 设置 —> 应用程序 —> 开发,选择USB调试; • USB连接电脑,安装手机驱动,如果没有相关的驱动的话,可以安装豌豆荚进行驱动安装。 • 检测手机设备是否已经被识别

  12. 提纲 • 开发环境搭建 • 简单示例程序

  13. 简单示例程序-HelloWorld • 步骤1:新建Android应用

  14. 简单示例程序-HelloWorld • 步骤2:输入应用信息

  15. 简单示例程序-HelloWorld • 步骤2:输入应用信息(续)

  16. 简单示例程序-HelloWorld • 步骤2:输入应用信息(续)

  17. 简单示例程序-HelloWorld • 步骤2:输入应用信息(续)

  18. 简单示例程序-HelloWorld • 步骤2:输入应用信息(续)

  19. 简单示例程序-HelloWorld • 运行和调试Android应用程序 • 选择Run->Run/Debug • 运行和调试应用程序将完成以下工作: • 编译当前项目,并转换为Android可执行文件(.dex) • 把可执行文件和外部资源打包为Android包(.apk) • 启动所选择的虚拟设备(若选择了一个AVD,但还未运行) • 安装应用程序到目标设备上 • 启动应用程序

  20. 简单示例程序-HelloWorld • 运行结果

  21. 简单示例程序-HelloWorld • 项目结构 • 主程序 • 自动生成的R类 • 资源文件 • drawable • Layout • menu • values • 程序清单

  22. 简单示例程序-HelloWorld • 主程序 MainActivity.java • package com.example.helloworld; • import android.os.Bundle; • import android.app.Activity; • import android.view.Menu; • public class MainActivity extends Activity { • protected void onCreate(Bundle savedInstanceState) { • super.onCreate(savedInstanceState); • setContentView(R.layout.activity_main); • } • public boolean onCreateOptionsMenu(Menu menu) { • getMenuInflater().inflate(R.menu.main, menu); • return true; • } • }

  23. 简单示例程序-HelloWorld package com.example.helloworld; public final class R { public static final class dimen { public static final int activity_horizontal_margin=0x7f040000; public static final int activity_vertical_margin=0x7f040001; } public static final class drawable { public static final int ic_launcher=0x7f020000; } public static final class id { public static final int action_settings=0x7f080000; } public static final class layout { public static final int activity_main=0x7f030000; } public static final class menu { public static final int main=0x7f070000; } public static final class string { public static final int action_settings=0x7f050001; public static final int app_name=0x7f050000; public static final int hello_world=0x7f050002; } …… } • 自动生成的R类,不要手工修改.

  24. 简单示例程序-HelloWorld • UI布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout>

  25. 简单示例程序-HelloWorld • 字符串 string.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">HelloWorld</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> </resources>

  26. 简单示例程序-HelloWorld <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloworld" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.helloworld.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> • 程序清单 AndroidManifest.xml

  27. 简单示例程序-ToDoList • 待办事项程序,后续会对该工程进行完善 • 步骤1:新建Android项目 • 项目名称为ToDoList,包名为com.example.first.todolist • 配置icon属性,选择一个Image文件,并将形状设置为Square • 活动名称设置为Main,布局名称设置为main

  28. 简单示例程序-ToDoList • 步骤2:修改主布局 • 打开res/layout/main.xml • 将相对布局RelativeLayout修改为LinearLayout • 增加一个ListView, EditText,并赋予EditText及ListView控件ID

  29. 简单示例程序-ToDoList • 步骤2:修改主布局 (续) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent“ <EditText android:id="@+id/myEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/init_text" /> <ListView android:id="@+id/myListView" android:layout_width="fill_parent" android:layout_height="wrap_content" /></LinearLayout>

  30. 简单示例程序-ToDoList • 步骤3:修改字符串资源 • 打开res/values/strings.xml • 增加<string name="init_text">New to do item.</string> (由于布局的EditText使用了android:text=“@string/init_text” ) <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">ToDoList</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="init_text">new to do item.</string> </resources>

  31. 简单示例程序-ToDoList • 步骤4:修改源文件Main.java • 重写onCreate( )方法 • 使用setContentView方法填充UI • 通过findViewById方法获得对ListView和EditText的引用 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //扩充视图 setContentView(R.layout.main); //获取对UI控件的引用ListView myListView = (ListView) findViewById(R.id.myListView); Final EditText myEditText = (EditText ) findViewById(R.id.myEditText ); }

  32. 简单示例程序-ToDoList • 步骤4:修改源文件Main.java (续) • 在onCreate( )方法中,定义一个String类型的ArrayList来存储每一个待办事项 • 使用ArrayAdapter把ListView绑定到ArrayList上 //创建待办事项的表ArrayList final ArrayList<String> todoItems = new ArrayList<String>(); // 创建ArrayAdapter,以便将数组绑定到ListView final ArrayAdapter<String> aa; aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,todoItems); //将ArrayAdapter绑定到ListView myListView.setAdapter(aa);

  33. 简单示例程序-ToDoList • 步骤4:修改源文件Main.java (续) • 允许用户添加新的待办事项 • 向EditText中添加onKeyListener来监听D-pad中间按钮点击,然后将EditText的内容添加到todoList数组中,并通知ArrayAdapter发生了变化。 myEditText.setOnKeyListener(new OnKeyListener(){ public boolean onKey(View v, int keyCode, KeyEvent event){ if(event.getAction() == KeyEvent.ACTION_DOWN) if(keyCode == KeyEvent.KEYCODE_DPAD_CENTER){ todoItems.add(0, myEditText.getText().toString()); aa.notifyDataSetChanged(); myEditText.setText(null); return true; } return false; } });

  34. 简单示例程序-ToDoList • 步骤4:修改源文件Main.java (续) • 注:如果提示类型错误,包含相应的包和类即可 import java.util.ArrayList; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; import android.view.View; import android.view.View.OnKeyListener;

  35. 简单示例程序-ToDoList • Android模拟器DPAD not enabled in avd • 修改AVD的配置文件,config.ini, hw.Dpad=yes (C:\Documents and Settings\Administrator\.android\avd)

  36. 简单示例程序-ToDoList • 运行结果

  37. 简单示例程序 • Android支持各种资源与代码分离,从简单的资源(如字符串、颜色)到复杂的资源(如图片、动画、主题) • 通过资源分离,使应用更加容易维护、更新和管理 • 可以根据屏幕的尺寸和方向改变布局 • 根据语言和国家来定制文本提示等

  38. Q&A!

More Related