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有级别,可以很轻松地过滤和筛选,得到相应级别、相应类型、相应应用程序的日志信息。方便调试。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java进阶架构师

闪电侠:2018.3 IntelliJ IDEA 重大更新:支持CPU火焰图,新增酷炫主题

就在上周,JetBrain 公司发布了 Java 集成开发环境 IntelliJ IDEA 最新版本 2018.3Beta,本篇文章,我将根据官方博客以及自己的...

15410
来自专栏MoeLove

关于 webpack 你所忽略的细节(附源码分析)

随着前端技术的火热发展,工程化,模块化和组件化的思想已逐步成为主流,与之相应的,就需要有一整套工具流可以支撑起它。

10330
来自专栏编程

使用GitHub搭建个人博客

今年使用GitHub搭建了自己的博客:kaze2017.com 我整理了一下搭建博客的过程,分为购买域名、准备环境、Git和GitHub、搭建博客、绑定域名、感...

341100
来自专栏腾讯云服务器团队的专栏

腾讯云 CBS 性能测试用例参考

2、fio测试建议在空闲的、未保存重要数据的硬盘上进行,并在测试完后重新制作文件系统。请不要在业务数据硬盘上测试,避免底层文件系统元数据损坏导致数据损坏。

600130
来自专栏AndroidTv

系统应用集成过程中的一些坑背景知识点正文埋坑后记参考资料

埋这些坑的最初来源是由于测试人员在集成新终端设备时提了个 bug: app 在这个设备上无法启动。

18620
来自专栏软件

GitHub快速入门图文全面详解

?tub程序员必须要会 作者:AWeiLoveAndroid 博客:https://www.jianshu.com/u/f408bdadacce 文章目录 入门...

23080
来自专栏freesan44

ACP互联网架构认证笔记-EDAS企业级分布式应用服务

EDAS支持语言Java,C++,PHP。EDAS支持Idea,Eclipse;Eclipse插件安装等编译工具。EDAS初级版仅支持应用的部署管理,不支持HS...

46670
来自专栏大史住在大前端

webpack4.0各个击破(1)—— html部分

对于浏览器而言,html文件是用户访问的入口点,也是所有资源的挂载点,所有资源都是通过html中的标记来进行引用的。而在webpack的构建世界里,html只是...

13230
来自专栏程序员互动联盟

浏览器开发系列第三篇:chromium代码目录结构

上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,欢迎交流。 另外...

68170
来自专栏测试驿栈

Jmeter(二十)_Mock接口

Mock通常是指,在测试一个对象时,我们构造一些假的对象来模拟与其交互。而这些Mock对象的行为是我们事先设定且符合预期。通过这些Mock对象来测试对象在正常逻...

36230

扫码关注云+社区

领取腾讯云代金券