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)的更多相关文章

  1. Android基础测试题(四)

    看了前两道题大家有没有发现,测试题少了(一),大家猜猜测试题(一)是什么? Android基础测试题(四): 需求: 建一个方法,格式化输出2016-11-14 10:15:26格式的当前时间,然后截 ...

  2. Android基础测试题(二)

    今天给大家带来的是Android基础测试题(二) 题目要求: 定义一个5位长度的整型数组并初始化,然后构建方法根据用户传入的数字判断是否存在数组中,如果存在,返回所在位置,如果不存在,返回-1 首先第 ...

  3. Mono.Android 基础

    Mono.Android 基础 (地址) Mono.Android项目结构是 — Project + Assets + Resources + drawable + layout + values R ...

  4. 深入理解gradle编译-Android基础篇

    深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...

  5. android基础---->JSON数据的解析

    上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...

  6. 基础4 Android基础

    基础4 Android基础 1. Activity与Fragment的生命周期. Activity生命周期 打开应用 onCreate()->onStart()->onResume 按BA ...

  7. Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...

  8. 【Xamarin开发 Android 系列 4】 Android 基础知识

    原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...

  9. Android基础_web通信3

    在Android基础_web通信2中,我运用的JSONObject是Android原生的json类,通过import org.json.JSONObject来导入. 还有另外一种更简单的方法,就是用G ...

  10. Android 基础:常用布局 介绍 & 使用(附 属性查询)

    Android 基础:常用布局 介绍 & 使用(附 属性查询)   前言 在 Android开发中,绘制UI时常需各种布局 今天,我将全面介绍Android开发中最常用的五大布局 含 Andr ...

随机推荐

  1. oracle行转列(连接字符串函数)

    方法一:wmsys.wm_concat(column) 介绍:其函数在Oracle 10g推出,在10g版本中,返回字符串类型,在11g版本中返回clob类型.括号里面的参数是列,而且可以是多个列的集 ...

  2. Akka(二) - Future

    1. future的所有方法都是非阻塞立即返回的 (1)future都要有TimeOut和ExecutionContextExecutor这2个隐士参数 (2)打印future object Hell ...

  3. [运维-服务器 – 1A] – nginx.conf(转)

    #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_processes 8; #全局错误日志定义类型,[ debug | in ...

  4. BigDecimal的equals

    BigDecimal testA = new BigDecimal(79); BigDecimal testB = new BigDecimal("79.00"); System. ...

  5. eclipse中输入@符号自动提示Annotation

    将Eclipse中Content Assist中的Auto activation for java里.的后面加上@符号即可

  6. Guava 9-I/O

    字节流和字符流 Guava使用术语”流” 来表示可关闭的,并且在底层资源中有位置状态的I/O数据流.术语”字节流”指的是InputStream或OutputStream,”字符流”指的是Reader ...

  7. python 正则表达式 demo

    1.匹配大小写和数字,并且大小写数字均要有,且字符串长度为6~20位 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d]{6,20}$ import repattern ...

  8. Ubuntu 12.04.2搭建nfs服务器

    1.安装nfs 服务器(192.168.0.1) apt-get install nfs-kernel-server 2.修改nfs配置文件: vim /etc/exports 在exports文件中 ...

  9. netty入门实例

    TimeServer.java package netty.timeserver.server; import io.netty.bootstrap.ServerBootstrap; import i ...

  10. mongodb 数据导入导出

    mongoexport 命令异常方便简单强大! 连接数据库: jkmiao@jkmiao-ipin:~$ mongo 192.168.1.xx:xxx/jd_58tc_raw 1.  导出10条数据到 ...