android开发之路01
一.android系统被分为4个层次:1.最下层的是linux核心,包括多个驱动程序,提供了操作系统应该具备的核心功能;2.在linux核心之上,包括两个部分,一部分是Android Runtime(包括Dalvik虚拟机,和Core Libraries相当于java中的jdk)和LIBRARIES;3.是Application Framework这一层,该层包括多个Android开发框架(即各种管理器,如资源管理器等);4.Aplication层(该层既是我们工作的领域app)
二.基于组件的应用程序开发:这种方式使得Android开发变得简单化,把需要的功能封装成一个一个的组件,当开发app的时候使用对应的组件开发。Android组件:①Activity:Activity就相当于网站上的页面;②Service:Service主要负责在Android操作中耗时较长的操作,它没有图形化界面;③Content Provider:数据共享的一种方法,如果我的app有一个Content Provider,那么其他程序就可以访问我的app。④BroadcastReceiver:广播接收器,它的作用是监听手机中发生的事情,它是用来监听系统行为的(例如:手机进入低电量的时候,那么手机就会给应用程序发送一个广播,如果用户正在玩游戏,那么是不是应该在获取系统所发出的消息后,应该给予用户提示)
三.初识Activity:
1.Activity启动流程:①Activity启动之前,Android操作系统首先会去读取AndroidMannifest.xml文件,决定启动哪个Activity,然后生成默认Activity的对象,然后调用该对象的onCreate()方法(这些操作都是由Android操作系统来完成的),在onCreate()方法当中又会去读取布局文件main.xml,根据布局文件中的内容决定Activity该显示什么内容;
2.Activity与布局文件之间的关系:①RelativeLayout:就是相对布局,相对布局的容器范围之内的控件都使用相对布局的方式②TextView:即文本视图,它用于显示文本;
3.在Activity当中获取代表控件对象:在Activity中有TextView对象,而在main.xml中有<TextView>控件的声明,那么就可以说该TextView对象就是代表控件的对象,当onCreate()方法中要读取某个布局文件的时候,此时Activity生成该布局文件中控件所对应的对象,我们通过findViewById()来获取代表该控件的对象;又因为findViewById()返回的全是View类型的对象,所以我们必须向下转型成对应的对象类型;我们可以在布局文件中控制控件的属性,同样可以在Activity中控制属性;
三.
1.View的基本概念:在Activity中显示出来的控件,在android技术体系中就是View,View是所有控件类的父类,每一种控件都对应一个类,这些类通通都是View的子类;
2.在Activity当中获取代表View的对象:findViewById();
3.设置View的属性:一种是在布局文件中,一种是在Activity中;
4.为View设置监听器
5.为控件绑定监听器:①获取代表控件的对象;②定义一个类,实现监听器接口;③生成监听器对象;④为控件绑定监听器对象
四.
1.控件布局的基本概念:控件布局就是指控件在Activity当中的位置,大小,颜色以及其他样式属性的方法。使用布局文件完成控件布局,在java代码中完成控件布局。有两种方式:①在布局文件中完成控件布局;②在java代码中完成控件布局
2.布局方法分类:LinearLayout(线性布局),RelativeLayout(相对布局)在实际开发中,相对布局是我们使用最多的。在线性布局中,每个控件都会独占一行,或者一列,和控件内容的长度无关。
五.长度单位与内外边距
1.距离单位之px:即像素,例如我们所说的屏幕分辨率是480*320也就是说,在横向屏幕被分成了480份,纵向被分成了320份。而整个屏幕被分成了480*320个格子,而这每一个小格子就是一个像素;
2.距离单位之dp:dpi即每英寸上点的个数,也就是屏幕显示的细腻程度。dpi值越高屏幕分辨率越高,反之屏幕分辨率越低;dp=dip(Device Independent pixels)换算公式:px=dp*(dpi/160)在dpi为160的屏幕上:1dp=1px
3.距离单位之sp;scaled pixels(可缩放的像素)通常用于指定字体的大小,当用户修改手机显示字体时,sp会随之改变。
4.控件的外边距和内边距:margin和padding
六.
1.单选按钮的基本概念:单选按钮与多选按钮之间的区别在于在一组按钮中只能有一个能被选中;
2.RadioGroup与RadioButton
3.OnClickListener与OnCheckedChangeListener监听器
4.ImageView
5.LinearLayout布局的嵌套
6.layout_weight:子控件未能占满父控件的空间,layout_weight的值用于指定空闲空间的分配比例
7.RelativeLayout:相对布局是通过指定当前控件与兄弟控件或者是父控件之间的相对位置,从而达到控制控件位置的目的。RelativeLayout布局的新属性(Android 4.2之后)
七.
1.TimePicker;2.DatePicker;3.ProgressBar;4.RatingBar
android开发之路01的更多相关文章
- android开发之路09(浅谈SQLite数据库01)
1.SQLite数据库: SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使 用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同, ...
- Toast显示图文界面——Android开发之路1
Toast的多种使用方法 Toast其实是一个功能特别强大的组件,不仅仅可以吐司一个文本内容,还可以吐司图片以及图文混排的界面.具体用法如下: 第一种:简单的纯文本内容的吐司: Toast.makeT ...
- 菜单(Menu)的三中创建方式——Android开发之路2
菜单的三种创建方式 一.OptionsMenu---选项菜单 Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单.这种菜单叫做选项菜单(Options Menu ...
- Android中隐藏顶部状态栏的那些坑——Android开发之路3
Android中隐藏顶部状态栏的那些坑 先看看常规的隐藏状态栏的方法: 方法一: @Override protected void onCreate(Bundle savedInstanceState ...
- Android中点击隐藏软键盘最佳方法——Android开发之路4
Android中点击隐藏软键盘最佳方法 实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏: 1.重写dispatchTouchEve ...
- Intent的七大组件——Android开发之路5
------Intent------ Android中三个核心组件——Activity.Services.BroadCastProvider都是通过Intent传递参数. startActivity( ...
- android开发之路12(android四大组件&Fragment&AsyncTask类)
一.Activity组件1.简介:Activity组件是Android四大组件之一,通常一个Activity相当于一个用户界面,我们可以通过加载布局文件将Android提供的各种控件及自定义控件显示到 ...
- android开发之路13(实际开发常见问题及解决办法ING)
1.DDMS下无法浏览SDcard? 在做音乐播放器的时候,想通过eclipse中的DDMS视图将音频文件push到sd卡中,发现总是报错 :Failed to push selection: Rea ...
- android开发之路11(用SharedPreferences存储数据)
Android平台给我们提供了一个SharedPreferences类,实际上SharedPreferences处理的就是一个key-value(键值对),它是 一个轻量级的存储类,特别适合用于保存软 ...
随机推荐
- MAT文件操作
o李YZo 原文 MAT文件打开方法汇总及其他操作 MAT文件简介 为MATLAB使用的一种特有的二进制数据文件.MAT文件可以包含一个或者多个MATLAB 变量.MATLAB通常采用MAT文件把工作 ...
- UVA 12436-Rip Van Winkle's Code(线段树的区间更新)
题意: long long data[250001]; void A( int st, int nd ) { for( int i = st; i \le nd; i++ ) data[i] = da ...
- HDU 5700 区间交 线段树暴力
枚举左端点,然后在线段树内,更新所有左边界小于当前点的区间的右端点,然后查线段树二分查第k大就好 #include <cstdio> #include <cstring> #i ...
- ios开发中常用的也是最基本的mysql语句
MySQL常用基本SQL语句小结——(转) sql语言不经常用,每次再用都隔好久的时间,以致最基本的都想不起来了,只好转一篇记着= - 找的时候方便 SQL分类: DDL—数据定义语言(CREATE ...
- ASP.NET服务器控件OnClientClick事件中Eval()作为js方法的参数的一种写法
参考代码: <input type="button" OnClientClick='<%#Eval("DeptID", "DelUserD ...
- 【暑假】[实用数据结构]UVAlive 3026 Period
UVAlive 3026 Period 题目: Period Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld ...
- 【恒天云】OpenStack和CloudStack对比研究报告
摘自恒天云:http://www.hengtianyun.com/download-show-id-8.html 1. 概述 常见的IaaS开源平台有OpenStack.CloudStack.Euca ...
- HW6.9
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- 扯扯淡,写个更快的memcpy
写代码有时候和笃信宗教一样,一旦信仰崩溃,是最难受的事情.早年我读过云风的一篇<VC 对 memcpy 的优化>,以及<Efficiency geek 2: copying data ...
- hdu 2715 Herd Sums
Herd Sums Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...