有点小激动!虽然接触android开发很久了,2011年,也做过很多小项目都是一个人完成的。大项目目前才参与过两个,一个是智能家居客户端,一个是智能手机外壳。看到网上很多大牛那么厉害,一直没勇气申请专栏。昨天头脑一热就试了一下。今天就给开通了,太感谢CSDN了。既然有了这个机会,就让我贡献自己的一点萤火之光,和大家一起学习一起进步。
今天做为第一天,也是专栏的第一篇文章,我不打算从大型项目开始,先从简单的单个功能性程序再到小型APP,再到大点的项目的过程来讲解我对Android的理解。循序渐进!
今天要做一个小程序,实现点击程序图标进入百度网站。
一、需求分析
功能需求:点击图标进入网站
二、概要设计
点击图标,我们需要一个图标;点击图标后程序会开始运行,从程序入口点开始逐步加载数据,进入程序运行循环。我们要在其中某个阶段,根据网址打开网站;
三、详细设计
1、设置程序图标
android程序图标的基本尺寸
ldpi (Low Density Screen,120 DPI),其图标大小为 36 x 36 px。
mdpi (Medium Density Screen, 160 DPI),其图标大小为 48 x 48 px。
hdpi (High Density Screen, 240 DPI),其图标大小为 72 x 72 px。
xhdpi (Extra-high density screen, 320 DPI),其图标大小为 96 x 96 px
所以我们先准备以上尺寸的几张图标放到程序的res/drawable下的相应文件夹里本程序的图标为baidu.png;再到AndroidMenifest.xml进行配置:application标签下的android:icon="@drawable/baidu"
2、Android系统框架
3、Android程序执行过程
点击图标程序开始运行Delvik虚拟机加载,运行到Application类,然后再到主组件,一般为activity。就是有添加如下配置的activity
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
4、Activity及其生命周期
5、Intent相关
Intent是由Component、Action、Data、Category、Extra及Flag六部分组成的
对于本程序的调用系统浏览器是通过如下代码实现的
Uri uri = Uri.parse(URL);//把String类型转换成Uri 统一资源定位符 Intent intent = new Intent(Intent.ACTION_VIEW, uri);//能过Intent调用系统浏览器打开网站 startActivity(intent);
四、编码测试
//MainActivity.java
package com.leo.home; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; /** * @time 2015-09-11 * @describe 实现进入相应网站的功能 * @author leo * */ public class MainActivity extends Activity { private static final String URL = "http://www.baidu.com";//静态常量 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.activity_main);//加载程序的布局文件 本程序不需要 Uri uri = Uri.parse(URL);//把String类型转换成Uri 统一资源定位符 Intent intent = new Intent(Intent.ACTION_VIEW, uri);//能过Intent调用系统浏览器打开网站 startActivity(intent); finish();//结束程序 } }
<?xml version="1.0" encoding="utf-8"?> <!-- xmlns是xml name space的缩写 既命名空间 是为了解决命名冲突而引入的 --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.leo.home" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <!-- 在android里操作硬件 读写文件 获取资源等需要相应的权限 本程序需要访问网络的权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 一个android程序只有一个application 它是对程序相关内容的配置 包括程序名 程序图标 本程序就是在android:icon标签下更改程序图标的 --> <application android:allowBackup="true" android:icon="@drawable/baidu" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- 主activity 程序启动后会先进入此activity 因为其添加了MAIN 和 LAUNCHER --> <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>
源码地址:http://download.csdn.net/detail/zhaicaixiansheng/9098717
五、项目总结
麻雀虽小,五脏俱全。本文采用软件工程的瀑布模型进行编写。瀑布模型:瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。优点是里程碑清析,各阶段固定,开发过程文档充分;缺点是不能很好的应对需求的变化,开发周期长等。对于Android开发,首先要了解Android程序的生命周期,它是由Application进行管理的。其次是四大组件的生命周期,包括Activity,Service,Broadcast Receiver, Content Provider。除此还需要知道组件间的通信Intent等。谢谢听我说了那么多废话。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/zhaicaixiansheng/article/details/48374765