暑假过的飞快,在蓝杰集训的最后几天,在斌哥的带领下我们进行了Android手机开发的初步培训,由于回家的时间一定,无奈只上了两节课,但也已经能够写出自己的第一个手机应用,甚至于做出一个简单的画图板来了,我把我这两天所有总结一下。
第一步的环境搭建略过不谈,我讲一下Android应用程序的组成。
一般来说Android主要由一下
四部分组成
Activity Activity代表手机屏幕的一屏.一般一个Android应用是由多个Activity组成,这多个Activity可以相互跳转.当打开一个新屏幕的时候,之前的屏幕会被置为暂停状态并被压入历史堆栈中,用户可以通过回退操作返回以前打开的屏并且可以有选择性的选择删除没必要保留的屏.Activity是由Android维护的,有其自己的生命周期(产生、运行和销毁).
在多个Activity中跳转我们就需要用到Intent.Intent就是一次对将要执行的操作的抽象描述.
与Intent有关系的是Intent Filters.Intent filters用于描述一个Activity能够操作哪写Intent.一般在AndroidMainfest.xml中定义.
•
Broadcast Intent Recevier 可以使用BroadcastRecevier来让应用对外部的事件做出响应.不生成UI,用户是看不到的.BroadcastRecevier通过NotificationManager来通知用户这些事情发生了.BroadcastReceviers既可以在AndroidMainfest.xml中注册也可以在运行代码时使用Context.registerRecevier()进行注册.只要注册了,当事件来临的时候,即使程序没有启动, 系统也在需要的时候启动程序.各种应用还可以通过使用Context.sendBroadcast()将它们自己的intent broadcasts广播给其它应用程序.
•Service 控制应用程序的启动和暂停.startService(Intent service)启动Service,可以通过Context.bindService()来绑定一个Service
•Content Provider 数据在Android中是私有的,但是一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据暴露出去.外界可以通过这一套标准而统一的接口和程序里的数据打交道.
第三个是Android里的
布局
•LinearLayout
这是我们接触到的第一个Android布局,它的意思是将自己包含的子元素按照水平或竖直进行排列.可以通过设置android:orientation="vertical"或者android:orientation="horizontal"来实现.
•FrameLayout
好比一块在屏幕上提前预定好的空白区域,然后可以填充一些元素到里面.需要注意的是,所有的元素都被放置在FrameLayout区域最左上的区域.而且无法为这些元素制定一个确切的位置.如果一个FrameLayout里有多个子元素,那么后边的子元素的现实会重叠在前一个元素上.
•RelativeLayout
相对布局方式.里面的元素按照相对位置来计算.需要注意的是,出于性能上的考虑,对于相对布局的精确位置的计算只会执行一次,所以,如果一个可视化组件B依赖于A,那么必须要让A出现在B的前边.
•TableLayout
表格式的布局,这种布局会把包含的元素以航和列的形式进行排列,表格的列数为每一行的最大列数.
就一个初学者的看法,在eclipse里面看起来,一个Android程序确实比Java程序要复杂了很多:src包下有程序所有的Java源代码,gen存放R文件,目录下的该文件是项目创建时自动生成,是只读文件,此文件存储了该项目中的所有资源的索引。
Android2.2目录:存放Android自身的jar包
assets目录:存放应用中用到的类似视频文件、MP3等一些媒体文件
res目录:资源文件夹,存放图片(drawable-hdpi,drawable-ldpi,drawable-mdpi文件夹)、页面布局文件(layout文件夹)、文字信息(values文件夹)
AndroidManifest.xml:功能清单文件,该文件列出了应用中所使用的所有组件,如Activity、Service等,比方说我如果新建了一个Activity如果不在AndroidManifest.xml中注册的话,程序就会出现异常关闭的错误。
default.properties:该文件存放了应用对应的一些环境配置,如应用要求运行 的最低Android版本。一般不需要手动去更改
proguard.cfg:混淆工具,这个据说我们不要去管
好了搞清楚了Android程序的组成,我也自己写了两个小应用,与以前大有不同的是res下的layout在编写的过程中遇到了xml标签语言,这个语言以前从来都没有接触过,所以现在只能照猫画虎的照着敲。出了问题也很难检查出来。
下面是一个简单的手机相册的代码示例:
这一部分是,第一个界面,通过一个简单是事件监听,可以切换到下一个界面,一个界面的背景是一张图片,下面的几个界面也是这个原理。
package cn.netjava.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class FirstActivity extends Activity {
// 定义属性
EditText edit_name, edit_pwd;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println("我的第一个手机程序");
getView();
}
// 创建监听器对象
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
// 验证操作
int id = v.getId();// 通过事件源得到选取组件的ID
switch (id) {
case R.id.btn_login:
if ("1992523".equals(edit_name.getText().toString())) {
// 创建intent对象,实现界面跳转,intent相当于信使RNA,可以传递数据,可以通过Intent启动另外一个Activity。
Intent intent = new Intent(FirstActivity.this,
SecondActivity.class);
startActivity(intent);
} else {
Toast.makeText(FirstActivity.this, "您输入的用户名或者密码有误", 3).show();
}
break;
case R.id.btn_reset:
edit_name.setText("");
edit_pwd.setText("");
break;
}
}
};
public void getView() {
// 通过id来找到组件对象
Button btn_login = (Button) findViewById(R.id.btn_login);
Button btn_reset = (Button) findViewById(R.id.btn_reset);
edit_name = (EditText) findViewById(R.id.edit_name);
edit_pwd = (EditText) findViewById(R.id.edit_pwd);
//点击弹出提示信息
btn_login.setOnClickListener(listener);
btn_reset.setOnClickListener(listener);
}
}
下面的代码是登陆界面的layout文件夹下的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<!-- 总体的垂直布局 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="用户登录"
android:textSize="30px"
android:gravity="center_horizontal"
/>
<!-- 嵌套布局 水平居中-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="账户"
/>
<EditText
android:layout_width="100px"
android:layout_height="wrap_content"
android:id="@+id/edit_name"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密碼"
/>
<EditText
android:layout_width="100px"
android:layout_height="wrap_content"
android:id="@+id/edit_pwd"
/>
</LinearLayout>
<!-- 按钮对象 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<Button
android:layout_width="100px"
android:layout_height="wrap_content"
android:text="登陆"
android:id="@+id/btn_login"
/>
<Button
android:layout_width="100px"
android:layout_height="wrap_content"
android:text="重置"
android:id="@+id/btn_reset"
/>
</LinearLayout>
</LinearLayout>
至于接下来的界面就更简单了,就只需要摆一个按钮就OK了。电子相册就这样了。
在后来的画板的制作中我还接触到了新的监听器onTouchKListener,就像java里面的MouseListener一样,能够跟随划过屏幕的事件。
在初步学习中我感觉还不太难,只要认真的学,细心的敲代码,好好体会java与Android的异同,在实践中提升自己的示例,我想一定会学好的。
分享到:
相关推荐
自2008年第一款Android手机发布以来,Android迅速成为全球最受欢迎的移动操作系统之一。其特点包括但不限于: 1. **开源性**:Android是开源项目,开发者可以自由获取源代码并进行修改,这极大地促进了Android生态的...
这份名为"Android手机开发的pdf文件"的资料集合提供了一些基本的学习资源,旨在帮助初学者快速入门并掌握Android开发的核心概念。 首先,Android开发的基础部分包括对Java或Kotlin编程语言的理解。Java是Android...
在Android手机游戏开发领域,开发者需要掌握一系列技术与工具,以创造出吸引人的、...《Android手机游戏开发大全》这本书可能会深入探讨这些主题,并提供实践经验分享,对于初学者和有经验的开发者都是宝贵的学习资源。
在Android手机开发领域,源代码是学习和提升技术能力的重要资源。这个压缩包包含了10套完整的Android游戏源代码,对于学生和开发人员来说,它们是极好的学习材料和实践平台。下面,我们将深入探讨这些源代码可能涵盖...
**Android手机开发手册:环境搭建与基础开发流程详解** 在当今移动互联网时代,Android作为全球最流行的移动操作系统之一,吸引了无数开发者投身于其应用开发之中。对于初学者而言,掌握如何搭建Android开发环境是...
在Android手机开发的世界里,开发者可以利用谷歌提供的Android SDK(软件开发工具包)来构建功能丰富的应用程序和游戏。本课程将带你深入理解Android开发的核心概念和技术,让你具备创建自己的安卓应用的能力。 ...
在3G手机开发领域,Android应用开发是至关重要的一部分,它为开发者提供了丰富的工具和平台来构建功能丰富的移动应用程序。这个压缩包文件包含了《3G手机开发之Android应用开发》视频教程的所有源代码,覆盖了从第一...
"android手机开发源代码--1"这个资源提供了对Android平台Google手机开发的深入学习机会,特别是对于初学者来说,这是一个宝贵的起点。这里我们将深入探讨相关知识点: 1. **Android SDK**:Android Software ...
总的来说,"android手机开发源代码--7、8" 是一个很好的学习资源,它提供了大量可操作的代码示例,帮助初学者逐步熟悉Android开发环境,掌握核心概念和技术。通过深入学习和实践,你将能够独立地开发出属于自己的...
《Android手机开发教程》 Android手机开发是移动应用开发领域中的一个重要分支,它以其开源、灵活的特性吸引了众多开发者。本教程将引导你逐步踏入Android开发的世界,从基础概念到实际操作,帮助你掌握Android应用...
总之,《创意之钥Android手机交互应用开发》全面覆盖了Android开发的基础到高级知识,无论你是初学者还是有经验的开发者,都能从中获取有价值的信息,提升自己的Android应用开发能力。通过学习本书,你将能够创造出...
在Android手机版开发中,开发者需要掌握一系列技术和工具来构建功能丰富的移动应用。"Android 手机版开发实例"提供了一个完整的服务器端与客户端交互的案例,涵盖了数据查询和增删改查(CRUD)的基本操作。这个实例...
在Android手机开发领域,开发者需要掌握一系列技术和工具来构建高效、功能丰富的应用程序。这份"Android手机开发资料大全"提供了一个全面的学习资源集合,涵盖了从基础知识到高级技术的多个层面。 一、Android教程 ...
《Android应用开发揭秘》读书笔记不仅是一份个人学习历程的记录,更是一部深入浅出的Android开发...无论是初学者还是有一定经验的开发者,都可以从中找到有价值的信息,帮助提升开发技能,构建高质量的Android应用。
"android手机开发源代码--3"这个项目提供了Google手机开发的源代码,对于初学者来说,这是一个非常宝贵的资料库,可以帮助他们快速掌握Android应用开发的基础和进阶技巧。 1. **Eclipse与Android SDK**: 该项目推荐...
《Android 安卓 开发教程》是一本专为Android初学者设计的电子书,虽然出版时间可能较早,但其内容依然对当前的学习者有价值。这本书深入浅出地讲解了Android开发的基础知识,是入门和巩固技能的理想选择。在本文中...
《Google Android SDK开发范例大全(第3版)》在上一版的基础上,以Android手机应用程序开发(采用Android SDK 2.3.3)为主题,超过200多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计...
本教程旨在帮助初学者和有一定基础的开发者深入理解Android手机游戏开发,从简单的2D游戏到复杂的3D游戏,通过实例和详尽的代码注释,一步步引领你走进游戏开发的世界。 首先,我们来看"Android_3D_游戏开发教程....