Android基础总结(1)
1、Android开发的特点
- 四大组件:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)。其中活动是所有Android应用程序的门面,方式在应用中看到的东西,都是放在活动中的。而服务就低调得多,你无法看到它,它会在后台默默地运行,即使用户退出了应用,服务仍然可以继续运行。广播接收器可以允许你的应用接收来自各处的广播消息,例如电话、短信等,当然,你的应用也可以自己向外发出广播消息。内容提供器则为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。
- 丰富的系统控件:安卓系统为开发者提供了丰富的系统控件,用户也可以定制属于自己的控件(如何实现自定义控件???)。
- SQLite数据库:Android系统自带这种轻量级、运行速度很快的嵌入式关系型数据库。不仅支持标准的SQL语法,还可以通过Android封装好的API进行操作,让存储和读取数据变得更加方便。(SQLite数据库与其他开源数据库的区别,如何选???)
- 地理位置定位:利用Android手机都内置的GPS系统结合功能强大的地图功能进行定位。(怎么用???)
- 强大的多媒体:Android系统还提供了非常丰富的多媒体服务,如音乐、视频、录音、拍照、闹铃等
- 各种传感器:Android手机中会内置各种传感器,如加速度传感器、方向传感器等
2、Android开发需要准备的软件
- JDK、SDK(开发工具包,通过引入该工具包来使用Android相关的API)、Eclipse、ADT(谷歌提供的有一个Eclipse插件,连接Android和Eclipse,便于开发)
- JDK、SDK、Android Studio
3、Android项目开发在Eclipse中的文件架构
- src:放置我们所有的Java代码的地方,它在这里的含义和普通的Java项目下的src目录是一样的
- gen:自动生成的文件目录,主要是有一个R.java,你在项目中添加的任何资源都会在其中生成一个相应的资源id。这个文件永远不要手动修改它。
- assets:资产目录,存放一些随程序打包的文件,包含应用系统需要使用到的诸如mp3、视频类的文件,这些文件会被打包到应用程序的apk(安装包)中。如果你用到
- WebView加载本地网页的功能,所有网页相关的文件也会都存放在这个目录中。这个目录用的不多
- bin:编译后生成的二进制文件目录,不需要过多关注。包括打包产生的apk(安装包)也在此目录下。那该目录下的apk文件直接拷到手机上就可以直接安装了
- libs:如果你的项目中用到第三方Jar包,就需要将Jar包都放在libs目录下,放在这个目录下的Jar包都会自动添加到构建路径里去。
res:资源目录,这个目录下的内容就有点多了。简单点说,你项目中使用到的所有图片、布局、字符串等资源都会存放在这个目录中。前面提到的R.java中的内容也会根据这个目录下的文件自动生成对应的资源id。这个目录下还有很多子目录,图片都放在drawable目录下,布局文件都放在layout目录下,字符串等都放在values目录下,values目录下可以存放多个*.xml文件,还可以存放不同类型的数据。比如arrays.xml、colors.xml、dimens.xml、styles.xml
androidmanifest.xml:整个项目的配置文件,记录应用中所使用的各种组件。项目中定义的所有四大组件都需要在这里进行注册,另外还可以在这个文件中给应用程序添加声明权限,也可以重新指定创建项目时指定的程序的最低兼容版本和目标版本。
project.properties:代表项目属性,即编译的版本,对应android.jar的版本 。就是通过一行代码指定了编译时所使用的SDK版本。
4、Android中的MVC架构
MVC架构的主要目的是使程序中的数据与界面分离,其中M表示模型(model,也就是数据),V表示试图(view,也就是界面),C表示控制器(controller,用于控制M和V之间的联系)。Android SDK同样采用了MVC模式来展现数据和界面的关系。此外,常用的Java Web和Struts也是用的MVC框架。
MVC的基本原理就是通过Controller连接View和Model。也就是说,当view中显示的数据变化时(eg:ListView中要删除某个列表项),会通知controller,而不是直接通知model。然后controller接到通知后,会在model中采取相应的动作。同样,如果model中的数据有变化,会通知controller,然后controller会通知view重新显示数据。
- 使用MVC模式可以将显示部分和数据部分分离,这样当更换试图或模型时可以不影响对方,更有利于程序的维护。
5、Android中的日志工具,LogCat
Android中的日志工具类是Log(android.util.Log),提供了如下几种方法供我们打印日志:
- Log.v():打印最为琐碎、意义最小的日志信息。对应级别为verbose,是Android日志里级别最低的一种
- Log.d():打印一些调试信息。对应级别为debug,比verbose高一级
- Log.i():打印一些比较重要的信息。对应级别为info,比debug高一级
- Log.w():打印一些警告信息。对应级别为warn,比info高一级
- Log.e():打印一些错误信息。比如程序进入到catch语句中。对应级别为error,比warn高一级
Android中使用Log而不使用System.out.println()的主要原因是Android系统运行时会产生大量的、各种类型的、各种应用程序的信息,Log有级别,可以很轻松地过滤和筛选,得到相应级别、相应类型、相应应用程序的日志信息。方便调试。
Android基础总结(1)的更多相关文章
- Android基础测试题(四)
看了前两道题大家有没有发现,测试题少了(一),大家猜猜测试题(一)是什么? Android基础测试题(四): 需求: 建一个方法,格式化输出2016-11-14 10:15:26格式的当前时间,然后截 ...
- Android基础测试题(二)
今天给大家带来的是Android基础测试题(二) 题目要求: 定义一个5位长度的整型数组并初始化,然后构建方法根据用户传入的数字判断是否存在数组中,如果存在,返回所在位置,如果不存在,返回-1 首先第 ...
- Mono.Android 基础
Mono.Android 基础 (地址) Mono.Android项目结构是 — Project + Assets + Resources + drawable + layout + values R ...
- 深入理解gradle编译-Android基础篇
深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...
- android基础---->JSON数据的解析
上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...
- 基础4 Android基础
基础4 Android基础 1. Activity与Fragment的生命周期. Activity生命周期 打开应用 onCreate()->onStart()->onResume 按BA ...
- Android基础总结(8)——服务
服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...
- 【Xamarin开发 Android 系列 4】 Android 基础知识
原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...
- Android基础_web通信3
在Android基础_web通信2中,我运用的JSONObject是Android原生的json类,通过import org.json.JSONObject来导入. 还有另外一种更简单的方法,就是用G ...
- Android 基础:常用布局 介绍 & 使用(附 属性查询)
Android 基础:常用布局 介绍 & 使用(附 属性查询) 前言 在 Android开发中,绘制UI时常需各种布局 今天,我将全面介绍Android开发中最常用的五大布局 含 Andr ...
随机推荐
- perl语言书籍教程推荐
互动出版网计算机频道.为您推荐关于perl语言的书籍教程.包括perl push.perl chomp以及perl python等perl语言内容. perl语言书籍一.<Perl语言编程 第四 ...
- C#如何使用HttpWebRequest、HttpWebResponse模拟浏览器抓取网页内容
public string GetHtml(string url, Encoding ed) { string Html = string.Empty;//初始化新的webRequst HttpWeb ...
- POJ 1611 The Suspects(并查集,简单)
为什么ACM的题意都这么难懂,就不能说的直白点吗?还能不能好好的一起刷题了? 题意:你需要建一个n的并查集,有m个集合,最后要输出包含0的那个集合的元素的个数. 这是简单并查集应用,所以直接看代码吧! ...
- ZOJ 4257 MostPowerful(状压DP,简单)
题目大意:不超过10种气体,两两之间相互碰撞可以产生一定的能量,如a碰b,那么b气体就消失,自身不能碰自身,问最后所能得到的最大能量. 原代码链接:http://blog.csdn.net/accry ...
- python (18)在linux中如何实现定时发送邮件
最近要用到,定时发送邮件功能: 如何定时,当然要用到linux中crontab了 如下的代码能够定时发送邮件 #!/usr/bin/env python # -*- coding=utf-8 -*- ...
- [物理学与PDEs]书中一些对数学研究有用的引理
P 35--38 1. 若 ${\bf B}$ 为横场 ($\Div{\bf B}=0\ra {\bf k}\cdot {\bf B}=0\ra $ 波的振动方向与传播方向平行), 则 $$\bex ...
- BarTender破解问题
要使用BarTender 10.0的.net组件打印条码,就必须使用企业版的.在破解说明中会指出,BarTender破解过程要断开internet连接.在企业应用开发中,可能会遇到在局域网中给多个机器 ...
- andriod_入门一
[小技巧] 1.背景图片文件名不能以数字开头,必须以字母开头. 2.如果按钮被背景图被遮住,可以在relativelayout里拖动控件,把背景拖到最上方: [异常] 1. 在用LinearLayou ...
- BigDecimal的equals
BigDecimal testA = new BigDecimal(79); BigDecimal testB = new BigDecimal("79.00"); System. ...
- jquery点击改变class并toggle;jquery点击改变图片src源码并toggle;jquery显示隐藏toggle
<html><head><meta charset="utf-8"><title></title><script ...