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(键值对),它是 一个轻量级的存储类,特别适合用于保存软 ...
随机推荐
- java jvm学习笔记七(jar包的代码认证和签名)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 前言: 如果你循序渐进的看到这里,那么说明你的毅力提高了,jvm的很多东西都是比较抽像的,如果不找相对应的代码来辅助理解 ...
- Java程序版权保护解决方案
通常C.C++等编程语言开发的程序都被编译成目标代码,这些目标代码都是本机器的二进制可执行代码.通常所有的源文件被编译.链接成一个可执行文件.在这些可执行文件中,编译器删除了程序中的变量名称.方法名称 ...
- HDU 3567 Eight II BFS预处理
题意:就是八数码问题,给你开始的串和结束的串,问你从开始到结束的最短且最小的变换序列是什么 分析:我们可以预处理打表,这里的这个题可以和HDU1430魔板那个题采取一样的做法 预处理打表,因为八数码问 ...
- 了解 MVC 应用程序执行过程
发送给基于 ASP.NET MVC 的 Web 应用程序的请求首先通过 UrlRoutingModule 对象(一个 HTTP 模块)进行传递. 此模块将分析请求并执行路由选择. UrlRouting ...
- 2016"百度之星" - 初赛(Astar Round2B) 1006 中位数计数
思路:统计当前数左边比它小|大 i个人,相应右边就应该是比它大|小i个人 l数组表示左边i个人的方案 r表示右边i个人的方案 数组下标不可能是负数所以要加n //#pragma comment(lin ...
- uvalive 3135 Argus priority_queue
用优先队列维护每个时间点优先级最高的元素. #include<iostream> #include<cstdio> #include<cstdlib> #inclu ...
- 【Hadoop代码笔记】通过JobClient对Jobtracker的调用详细了解Hadoop RPC
Hadoop的各个服务间,客户端和服务间的交互采用RPC方式.关于这种机制介绍的资源很多,也不难理解,这里不做背景介绍.只是尝试从Jobclient向JobTracker提交作业这个最简单的客户端服务 ...
- leetcode@ [30/76] Substring with Concatenation of All Words & Minimum Window Substring (Hashtable, Two Pointers)
https://leetcode.com/problems/substring-with-concatenation-of-all-words/ You are given a string, s, ...
- daemon not running. starting it now on port 5037 ADB server didn't ACK
adb kill-server adb start-server 显示如下 daemon not running. starting it now on port 5037 ADB server di ...
- keil中 code、data、idata的区别
存储器类型 本C51编译器支持8051及其派生类型的结构能够访问8051的所有存储器空间具有下表列出的存储器类型的变量都可以被分配到某个特定的存储器空间.存储器类型 描述code 程序空间64 Kby ...