Tip
- trim首尾空值剔除
- fbc是FindViewById的快捷键
- 全局变量开头用m表示
- 非公有、非静态域的变量以m开头(其实就是protected和private成员变量)
- 静态变量以s开头
- 其它变量以小写字母开头
- Public static final变量(常量)以下划线连接全大写
应用组件
Android开发四大组件
- 活动(Activity)
- Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一.
- 一般一个Android应用是由多个Activity组成的.这多个Activity之间Android的应用可以进行相互跳转
- 服务(Service)
- Service是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以喝其他组件进行交互.service是没有界面的长生命周期代码.
- 举个栗子,打开一个音乐播放器的程序,这个时候若想上网了,那么,打开Android浏览器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一手接着一手播放.其实这个播放就是有播放音乐的Service进行控制
- 广播接收器(BroadcastReceiver)
- 在Android中,Broadcast是一种广泛运用的在应用程序之间传世信息的机制
- 内容提供者(ContentProvider)
- ContentProvider是Android提供的第三方应用数据访问文案
- 在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库,文件等内容,都是不允许与其他直接访问的.Android当然不会真的吧每个应用做成一座孤岛,他问所有应用都准备了一扇窗,这就是Content Provider
平台优势
开发性
- 在优势方面,Android平台受限是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来.显著的开放性可以使其拥有更多开发者.随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟
- 开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正式丰富的软件资源.开放的平台也会带来更大的净增,如此一来,消费者将可以使用更低价位购得心仪的手机
丰富的硬件
- 这一点还是与Android平台的开放性相关,由于Android的开发性,众多的厂商会推出千奇百怪,功能特色的都中产品,功能上的,却不会影响到数据同步,甚至软件的兼容
方便开发
- Android平台提供给第三方开发商一个十分宽泛,自由的环境,不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生.但也有其两面性,血腥,暴力青色方面等等,/滑稽
Google应用
- 在互联网的Google 已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图,右键,搜索等等
编写XML
- 利用 Android的XML词汇,按照在HTML中创建包含一系列嵌套元素的网页的相同方式快速设计UI布局及其包含的屏幕元素
- 每个布局文件都必须只包含一个根元素,并且该元素必须是视图对象或ViewGroup对象
- 定义根元素后,可以资源元素的形式添加其他布局对象或空间,从而逐步定义布局的视图层次结构
- 在XML中声明布局后,以.xml扩展名将文件保存在Android项目的res/layout/目录中
ID
任何View对象均可拥有与之关联的整形ID,用于在结构树中对View对象进行唯一标识.编译应用后,系统会以整形形式引用此ID,但在布局XML文件中,系统通常会以字符串的形式在id属性中指定该ID.这是所有View对象共有的XML属性(由View类定义,并且你会经常使用该属性)
@+id和@id的区别
其实@+id就是在R.java中新增一个id名称,如果之前已经存在相同的ID名称,那么会覆盖之前的名称.而@id则是直接应用R.java文件的存在的id字段,如果不存在,会编译报错
注意
ID字符串名称,在同一布局总必须是唯一的,不能重名,不同布局中可以同名;
通过ID值创建我们试图对象的实例
<TextView
anDroid:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello world!"
android:textSize="24sp"
/>
// java代码中获取view fbc为简写
TextView textView = (TextView) findViewById(R.id.tv)