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 ...
随机推荐
- 黄聪:让WordPress主题支持语言本地化(使用poedit软件实现中文翻译功能)
如果你的WordPress主题要提交到WordPress官方主题库,使用者来自世界各地的多种语言,那么,你就要让你的WordPress主题支持语言本地化,方便使用者进行语言翻译和制作语言包. 让Wor ...
- JDK1.7新特性
jdk1.7新特性 1 对集合类的语言支持: 2 自动资源管理: 3 改进的通用实例创建类型推断: 4 数字字面量下划线支持: 5 switch中使用string: 6 二进制字面量: 7 简化可变参 ...
- [复变函数]第11堂课 3.3 Cauchy 积分定理及其推论
0. 引言 (1) Cauchy 积分定理: 设 $D$ 为 $(n+1)$ 连通区域, $f$ 在 $D$ 内解析且连续到边界 $C$, 则 $\dps{\int_C f(\zeta)\rd \ze ...
- C#实现局域网文件传输
网络通信一般都是通过Socket进行的,称为进程通信机制,通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄. 先学习一下socket基本原理: socket原理: ...
- ucos-内存管理:
注意:一个内存分区至少含有2个内存块(块的大小至少能满足一个指针大小) 1先定义一个内存块结构指针OS_MEM *buffMEM,在定义一个而为指针A[m][n] 2创建内存分区:buffMEM=OS ...
- qt上用opencv显示摄像头视频
参考:http://blog.csdn.net/augusdi/article/details/8865541 代码如下: 注意,要在ui界面上放置一个“Vertical Layout”控件,调整到合 ...
- RBStoryboardLink库的使用注意事项 -转载至--坤哥MartinLi博客
RBStoryboardLink库的使用注意事项 demo下载:https://github.com/MartinLi841538513/RBStoryboardLinkDemo 操作步骤: 1,引入 ...
- chkconfig : No such file or directory
sys_version:12.04LTS For example: #chkconfig --level mysql on /sbin/insserv:No such file or director ...
- ubuntu13.10下安装samba
1.现在的ubuntu系统都默认安装了samba服务,如果是精简系统的话,可以通过apt-get进行安装 sudo apt-get install samba sudo apt-get cifs-ut ...
- tony_linux下网站压力测试工具webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装:wget http:// ...