《第一行代码》之——1.Android简介
Android简介
Android系统架构

(图片源自维基百科)
Android大致分为四层架构,五块区域。
- Linux内核层
Android系统基于Linux2.6,这一层为Android设备的各种硬件提供底层的驱动,如显示驱动,银屏驱动,照相机驱动,蓝牙驱动等。
2. 系统运行库层
通过一些C/C++库来为Android系统提供主要的特性支持
同样在这一层还有Android运行时库,它提供了一些核心库,允许开发者使用java语言来编写Android应用。另外Android运行时库还包含了Dalvik虚拟机,使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。
3. 应用框架层
主要提供了构建应用程序时可能用到的各种API
4. 应用层
所有安装在手机上的应用程序都属于这一层
Android四大组件
Android系统四大组件是活动(Activity),服务(Service),
广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。
Android项目目录结构
- src
src目录是放置所有Java代码的地方
2. gen
这个目录里的内容都是自动生成的,主要有一个R.java文件。在项目中添加的任何资源都会在其中生成一个相应的资源id。这个文件永远不要手动去修改它。
3. assets
主要可以存放一些随程序打包的文件,在程序运行时可以动态读取到这些文件的内容。另外如果在程序中使用到了WebView加载本地网页的功能,所有网页相关的文件也都放在这个目录下
4. bin
包含了一些在编译时自动生成的文件,其中会有一个当前项目编译好的安装包(.apk)
5. libs
如果项目中使用到了第三方jar包,就需要把这些jar包都放在libs目录下,放在这个目录下的jar包会自动添加到构建路径里去。
6. res
在项目中使用到的所有图片,布局,字符串等资源文件都要存放在这个目录下,R.java中的内容也是根据这个目录下的文件自动生成的。
7. AndroidManifest.xml
这是整个Android项目的配置文件,在程序中定义的所有四大组件都需要在这个文件里注册。另外还可以在这个文件中给应用程序添加权限声明。
8. project.properities
通过一行代码制定了编译程序时所使用的SDK版本
Android项目中的资源
- 以values开头的文件都是用来放字符串的。
以drawable开头的文件都是用来放图片的。
以layout开头的文件都是用来放布局的。
以menu开头的文件都是用来放菜单文件的。
如果美工只提供一份图片,就把所有图片放在drawable-hdpi文件夹下。
2. Android程序的设计讲究逻辑和视图的分离,因此不推荐在活动中直接编写界面,更通用的一种做法是,在布局文件中编写界面,然后在活动中引入进来。
3. Android不推荐在程序中对字符串进行硬编码,更好的一般做法是把字符串定义在res.values.strings.xml里,然后在布局文件或代码中引用。
4. 引用字符串的两种方式
在代码中通过R.string.hello_world可以获得该字符串的引用
在XML文件中通过@string/hello_world可以获得该字符串的引用
Android的日志工具Log
- Android的日志工具是Log(android.util.Log),这个类提供了如下几个方法(方法中传入两个参数,第一个参数是tag,一般传入当前的类名就好,主要用于对打印信息进行过滤。第二个参数是msg,即想要打印的具体内容):
1) Log.v()
打印最为琐碎的,意义最小的日志信息
2) Log.d()
打印一些调剂信息
3) Log.i()
打印一些比较重要的数据
4) Log.w()
打印一些警告信息,提示程序在这个地方可能会有潜在的风险
5) Log.e()
打印程序中的错误信息
2. 如果LogCat中没有打印出任何信息,有可能是因为你当前的设备失去焦点了,这是你只需进入DDMS视图,在Devices窗口中点击一下你当前的设备,打印信息就会出来。
3. 使用Log而不使用System.out打印日志
System.out打印日志不可控制,打印时间无法确定,不能添加过滤器,日志没有级别区分
《第一行代码》之——1.Android简介的更多相关文章
- 通过《第一行代码》学习 Android 开发
第一行代码 Android --第 2 版-- 郭霖 著 第 1 章:开始启程--你的第一行 Android 代码 •1.2 手把手带你搭建开发环境 Android Studio 的安装及配置 A ...
- 《第一行代码——Android》
<第一行代码——Android> 基本信息 作者: 郭霖 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115362865 上架时间:2014-7-14 出版日期:2014 ...
- Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- 第一行代码Android(第3版).pdf下载
2020年人民邮电出版社出版的图书 <第一行代码Android(第3版)>是2020年4月人民邮电出版社出版的图书,作者是郭霖. 封面: 内容简介: <第一行代码 Android 第 ...
- 【java学习系列】 Android第一本书《第一行代码》
开始Java的学习,从Android,开始吧.<第一代码>开始阅读和调试demo例子. 下面是 <第一行代码>的思维导图:
- Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- 第一行代码 Android 第二版到货啦
今日android第一行代码[第二版]已到,收获的季节到了 先看一下封面 书签: 以后就把空闲时间送给它吧 先来看一下本书的目录: 第1章 开始启程--你的第1行Android代码 第2章 先从看得到 ...
- Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld
前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...
- Android Studio 单刷《第一行代码》系列目录
前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...
- Android Studio 单刷《第一行代码》系列 07 —— Broadcast 广播
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
随机推荐
- Eureka Instance实例信息配置
Eureka包含四个部分的配置 instance:当前Eureka Instance实例信息配置 client:Eureka Client客户端特性配置 server:Eureka Server注册中 ...
- C#——找出实现某个接口的所有类 - Hello World - CSDN博客
原文:C#--找出实现某个接口的所有类 - Hello World - CSDN博客 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u0125260 ...
- 2019.10.29 csp-s模拟测试92 反思总结
今天快乐的墨雨笙因为什么而几乎爆零了呢? 顾此失彼+不会对拍+无脑的复杂度 今天高兴的墨雨笙又因为什么调了一个下午呢? 不明题意+不想范围+板子低级错误 R.I.P. T1: //唉 //害怕TLE, ...
- input光标错位
文档结构 <div class="noteWrap"> <input type="text" placeholder="写留言&qu ...
- div 无缝滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org ...
- bzoj 3033 太鼓达人——欧拉图搜索
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3033 思路:肯定是把2^m个数当成点,每个点连了2条入边.2条出边,然后求一个经过所有点一次 ...
- java并发系列(一)-----多线程简介、创建以及生命周期
进程.线程与任务 进程:程序的运行实例.打开电脑的任务管理器,如下: 正在运行的360浏览器就是一个进程.运行一个java程序的实质是启动一个java虚拟机进程,也就是说一个运行的java程序就是一个 ...
- C++/CLI 创建WPF程序
本文简单演示下用C++/CLI创建WPF程序,IDE为VS2015 首先创建CLR项目,选择CLR空项目: 然后,右键源文件,选择新建class,选择CLR->Component Class 接 ...
- Spring MVC JSON自己定义类型转换
版权声明:版权归博主全部.转载请带上本文链接.联系方式:abel533@gmail.com https://blog.csdn.net/isea533/article/details/28625071 ...
- mysql全连接
Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现 SELECT * FROM t1 LEFT JOIN t2 ON ...