学习android也有一段时间了,之前由于各种原因停了一段时间,回来再继续学的时候发现有些东西就生疏了,所以决定把自己学习的历程纪录下来,一方面加深理解,一方面便于以后再回来看。
如下图就是android的系统构架
从图中我们可以看到android系统是依靠linux提供的核心服务,这包括安全、内存管理、进程管理、网络、硬件驱动等等与硬件相关的服务。
我们再从底层往上看,可以看到存在于linux内核之上的是程序库和android的运行程序。libraries即是程序库,它们主要通过Android应用程序框架为开发者提供服务和支持。核心库有:
引用
• 系统C 库- 一个从BSD 继承来的标准C 系统函数库( libc ), 它是专门为基于embedded linux
的设备定制的。
• 媒体库- 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持
静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
• SurfaceManager - 对显示子系统的管理,并且为多个应用程序提供了2D和3D 图层的无缝融合。
• LibWebCore - 一个最新的web 浏览器引擎用,支持Android 浏览器和一个可嵌入的web 视图。
• SGL - 底层的2D图形引擎
• 3D libraries - 基于OpenGL ES 1.0 APIs 实现;该库可以使用硬件3D 加速(如果可用)或者使用高
度优化的3D 软加速。
• FreeType -位图(bitmap)和矢量(vector)字体显示。
• SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
而其中的android runtime就是运行程序,但是我认为把它翻译为运行时的环境或许更恰当一点。它由android的核心代码库和运行Delvik虚拟机组成(这也是我认为翻译为运行环境的理由之一),核心代码库为我们提供了java的语言支持,而Delvik虚拟机是android运行的依托。
再往上我们看到的是Application Framwork也就是应用框架,这部分是所有的核心应用。android作为一个开源手机系统,开发人员也可以完全访问核心应用程序所使用的API 框架。该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块。而且我们开发手机应用大部分都是在操作这个部分。
最上层就是应用程序了,Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA 语言编写的。
android的基本系统结构就是这些了,话说光说不练假把式,现在就来写一个简单的对EditText,Button,LinearLayout和AlertDialog的测试程序。
android作为一个手机平台,界面是十分重要的。因为Activity是Android程序与用户交互的窗口,所以要做界面就必须用到Activity这个组件。而每次当你需要用到这个组件的时候都不要忘了,每一个新的Activity都必须在res/AndroidManifest.xml中先进行定义声明的。但是当你建立一个新的android工程时,它会先帮你建立一个*(工程名)Activity.java的类,所以第一个Activity不需要自己在AndroidManifest.xml中定义声明。我们的第一个Activity是UITestActivity.java。
那么我们也可以先看看这个定义:
<activity
android:name=".UITestActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
所以我们可以看出基本的定义申明格式是
<activity
android:name=".*(Activity类名)"
android:label="@string/next_name">
</activity>
现在我们已经有了一个基本的页面了但是页面上只有hello World这样的字眼。那么就让我们加上一些东西吧。
首先我们在页面上加上一个文本框和2个按钮。在android中要在页面上加入按钮等构件,需要先在res/layout/*.xml中设置。*.xml取决于Activity中setContentView()中的对象。
在这里我们使用LinearLayout,线性布局。具体设置如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<EditText
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/text" />
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<Button
android:id="@+id/showButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/showButton" />
<Button
android:id="@+id/clearButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clearButton" />
</LinearLayout>
</LinearLayout>
这里使用了2重线性布局。其中的fill_parent为强制性地使构件扩展,以填充布局单元内尽可能多的空间。而wrap_content为强制性地使视图扩展以显示全部内容。
然后在UITestActivity.java中加上java代码
showButton = (Button) findViewById(R.id.showButton);
clearButton = (Button) findViewById(R.id.clearButton);
text = (EditText) findViewById(R.id.text);
这段代码的意义是取得视图中的构件,以便操作。
然后我们设置它们的监听器对象实现功能。
//设置show按钮的监听器对象
showButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new AlertDialog.Builder(UITestActivity.this)
.setTitle("imfomation")//设置标题
.setIcon(android.R.drawable.ic_dialog_map)//设置图标
.setMessage(text.getText()).show();//设置其内容并显示
//创建一个AlertDialog并将text中的内容输出到其中
}
});
//设置clear按钮的监听器对象
clearButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
text.setText("");
}
});
到这儿其实还有问题,大家可以看到在定义新的Activity时有一个android:label="@string/*,在设置视图的构件时也有android:id="@+id/*,这些东西都还是在报错。其实将它们删了,程序也能再ADK上运行,但是你会发现文本中没有字符,按钮上没有标签。它们就是代表了*这个字符串的值,而这个值是在/res/values/strings.xml中定义声明的。如下:
<resources>
<string name="hello">Hello World, UITestActivity!</string>
<string name="app_name">TestPage1</string>
<string name="text">input you want</string>
<string name="showButton">show</string>
<string name="clearButton">clear</string>
</resources>
这样我们就完成了一个简单的android程序。
- 大小: 93.7 KB
- 大小: 22 KB
- 大小: 22 KB
分享到:
相关推荐
### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...
Android学习笔记可以应用于多种场景,例如开发Android应用程序、学习Android开发技术、参加Android开发考试等。学习笔记可以帮助开发者快速掌握Android的基本概念和开发技术,从而提高自己的编程能力和职业竞争力。 ...
Android开发是全球最受欢迎的移动应用开发平台之一,广泛应用于智能手机、平板电脑以及各种智能设备上。这份"Android开发教程笔记完全版"涵盖了Android开发的基础到高级主题,旨在帮助开发者全面理解并掌握Android...
Android 应用开发学习笔记(全,from hitwh) Android 应用开发学习笔记是一个详细的 Android 应用开发学习指南,从 Android 应用开发的基本概念到高级主题,本笔记涵盖了 Android 应用开发的各个方面。 第 1 章 ...
Android开发是全球最流行的移动操作系统之一,广泛应用于智能手机、平板电脑以及其他智能设备。这份"Android开发教程笔记完全版.zip"包含了一份详细的Android编程学习资源,可能是由一位经验丰富的开发者或教育者...
Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...
【Android学习笔记之开发环境搭建(Eclipse和NetBeans)】 Android开发对于初学者来说,第一步通常是搭建开发环境。本文将详细介绍如何在Eclipse和NetBeans中设置Android开发环境,以便进行应用程序的编写和调试。 ...
《Android应用开发揭秘》读书笔记不仅是一份个人学习历程的记录,更是一部深入浅出的Android开发指南。本书籍及笔记覆盖了从基础知识到高级应用的广泛内容,为初学者和有经验的开发者提供了宝贵的资源。 ### ...
Android 布局是 Android 应用的基础组件之一,用于描述用户界面的结构和布局。 Android 提供了多种布局方式,如 LinearLayout、RelativeLayout、FrameLayout 等,每种布局方式都有其特点和应用场景。 三、控件 ...
本文档是一份详实的Android学习笔记,旨在帮助初学者快速入门Android开发。 #### 二、环境搭建与HelloWorld案例分析 **1. SDK下载与安装** - **下载**:访问Android官方网站或其他可信渠道下载Android SDK。 - **...
标签中的“android 开发 笔记 6410”进一步明确了笔记的核心内容,即围绕Android开发、学习笔记和real6410硬件平台。这意味着笔记可能包含如何配置开发环境、调试技巧、硬件驱动开发以及针对6410优化应用等方面的...
总的来说,这份"Android很好的学习笔记"是一个全面且实用的教程,覆盖了Android开发的各个方面,无论是对于刚入门的新手,还是有一定经验的开发者,都能从中获得宝贵的知识和技巧,进一步提升自己的Android开发能力...
### Android开发笔记总结 #### 学习基础 在深入探讨Android开发之前,我们先回顾一下基础知识,这是构建高质量Android应用程序的基石。 - **Java基础知识**:Android应用开发主要基于Java语言,因此熟悉Java是...
这份"android开发笔记入门级"资源,正是为了帮助初学者系统地学习和理解Android应用开发所准备的。它以易懂的方式,逐步引导学习者深入这个充满机遇的领域。 首先,我们要明白Android是一个开源的操作系统,主要...