福利来了!带你“爱上Android”

就是这么任性,又一波送书活动,感谢大家长久以来对我们的喜爱!这次小编自作主张,免费赠书,快来参加。

《爱上Android》

内容提要

本书深入浅出,详细讲解了Android 开发的知识,主要内容包括:Android 的体系架构、AndroidStudio、项目的创建、Android 工程目录、调试程序、界面的搭建;常用的控件和属性、提示信息Toast和Snackbar、点击事件3 种写法等;Activity 之间的跳转、Activity 生命周期、Activity 启动模式等;数据存储、网络编程;图片的处理;复杂控件的使用;Fragment、广播接收者、Service、动画等;以及Android 新特性、Kotlin 语言、性能优化、屏幕适配、自定义控件、JNI/NDK 开发等高级知识。并通过开发一个真实的项目让读者学以致用。

编辑推荐

12万读者的真实阅读体验,CSDN博客专家的力作,基于新版的Android

循序渐进地讲述开发过程中必备的知识,宗旨是不重复开发一个“轮子”,在给大家讲明原理的同时,介绍一些好的开发框架,这些框架能够让读者很快上手开发完成一个应用。

本书前面部分知识点配有相应视频,帮助读者零基础学通Android开发

作者微信答疑,解决读者学习中的困难

样章试读:

第1章 初识Android

毫无疑问,你肯定急于开始学习Android应用程序开发。毕竟,编程对程序员来说吸引力也是很大的。然而,在开始实际编程前,需要先了解Android的系统。

1.1 Android是什么

Android,中文名为安卓,直接翻译是机器人的意思,它是Google公司推出的一款开源免费的智能操作系统,不仅限于手机,现在很多终端都在使用Android操作系统,如手表、电视、汽车、平板电脑、微波炉等,如图1-1和图1-2所示。一般而言,还是以手机开发为主,本书也是介绍如何进行手机软件开发。

▲图1-1 Android系统的微波炉

▲图1-2 Android智能电视

由于Android系统是免费的,所以推广得很快。目前Android手机市场占有率已经超过80%。

1.2 Android体系架构

为了更好地理解Android系统是如何工作的,接下来解剖一下Android系统,看看其内部是如何构建的,如图1-3所示。

▲图1-3 Android系统架构

Android大致可以分为4层架构、5块区域。图1-3从下到上依次为:

(1)Linux内核层;

(2)系统运行库层;

(3)应用框架层;

(4)应用层。

1.Linux内核层

如图1-4所示,Android系统是基于Linux 2.6内核的,这一层为Android的各种硬件提供了驱动程序,如显示驱动、照相机驱动、声音驱动、电池管理等。当手机开机的时候,这一层肯定先运行。

▲图1-4 Linux内核层

2.系统运行库层

如图1-5所示,这一层通过一些C或者C++库为Android系统提供了主要的特性支持。如Webkit提供了浏览器支持(保证手机能够正常使用浏览器),SQLite库提供了数据库的支持(可以用来存储一些数据),OpenGLES库提供了3D绘图的支持等。

这一层还有Android运行时库,它主要提供了一些核心库,能够允许开发者使用Java语言编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(Android 5.0系统以后替换成了ART虚拟机),因为Java语言的特性决定它只能通过虚拟机去运行,这个有点像我们在电脑上玩小霸王的游戏需要装模拟器一样。

▲图1-5 系统运行库层

无论是Dalvik虚拟机还是ART虚拟机,都是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况,ART虚拟机安装程序时间稍微长一点,但是运行程序快一点。Google工程师最终决定用ART虚拟机(这点毋容置疑,没人愿意天天装程序)。

不管是Dalvik虚拟机还是ART虚拟机,都要比Java语言官方本身的JVM虚拟机要好用。当然最主要的原因是版权问题,虽然Java语言本身是开源免费的,但是JVM虚拟机不是开源免费的,所以不能直接用JVM虚拟机。

3.应用框架层

如图1-6所示,这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过这些API构建自己的应用程序。这层的使用频率要比上面介绍的两层使用频率高。

▲图1-6 应用框架层

#### 4.应用层 如图1-7所示,所有安装到手机上的应用都属于这一层,例如系统自带的联系人、短信等程序,或者是自己下载的一些应用、游戏,肯定也会包括自己写的程序。 ![](/api/storage/getbykey/original?key=17074a593354f8a3164f)

▲图1-7 应用层

应用层和应用框架层大部分都是采用Java代码编写的,Linux内核层和系统运行库层大部分采用C或者C++编写。

计算机语言核心就是0和1,理论上用一个电闸都能编程,闭合就是1,打开就是0,一开一闭程序就运行了,估计干这行的肯定瞧不上做C开发的。编程语言不分好坏,只是功能划分不一样。千万不要和资深程序员争论哪门编程语言好,他们眼中只有0或者1,基本上他能说的让你高山仰止。

1.3 Android发展史

Android从2008年发布1.0至今已经发布了20多个版本了,目前最新版本是Android 8,每一个系统版本都对应一个开发的API版本号,如Android 5.1对应API版本号21。每一个Android版本还都有一个代号,包括甜甜圈、姜饼、三明治、果冻豆、棒棒糖等。

如图1-8所示,表中最右面一栏就是当前版本的市场份额,可以发现Android 4.4是当前最流行的版本,Android 5.0以上的会越来越多,而Android 4.1以下的手机基本上没有了,Android 7.0还不到百分之一。所以本书重点讲解Android 5.0~7.1的知识,兼容到Android 4.1。

数据来源Android官网

▲图1-8 Android各个版本市场占有率

好了,Android基本信息就介绍到这,接下进入真正的Android开发之旅。

更多关于送书活动的细节,请关注【我们】微信公众号最新内容,幸运属于你。

希望大家多多支持我们。

(0)

相关推荐

  • 推荐几本Android程序员必读书籍

    Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发,从语言上来看,Android应用开发基于的是Java语言,但是这都是我们要自己下功夫去学习的事情. 不管你是Android菜鸟还是Android大神,一定能够找到一本适合自己阅读的书籍,抓紧来看看吧! 高尔基曾说"书是人类进步的阶梯",今天小编就为大家整理了一些优秀Android程序员都会阅读的书籍,帮助大家成为一个优秀的程序员 第1本书

  • 福利来了!带你“爱上Android”

    就是这么任性,又一波送书活动,感谢大家长久以来对我们的喜爱!这次小编自作主张,免费赠书,快来参加. <爱上Android> 内容提要 本书深入浅出,详细讲解了Android 开发的知识,主要内容包括:Android 的体系架构.AndroidStudio.项目的创建.Android 工程目录.调试程序.界面的搭建:常用的控件和属性.提示信息Toast和Snackbar.点击事件3 种写法等:Activity 之间的跳转.Activity 生命周期.Activity 启动模式等:数据存储.网络编

  • Eclipse下配置Ant脚本并自动打包带签名的Android apk

    eclipse虽然用的比较少,但是在一些古老的项目上还会用到滴,其中最麻烦的事情就是打带签名包的问题,不太方便,下面通过本文给大家记录下配置ant,自动打包带签名apk的过程,作为备份.(PC环境为MAC) 1,第一步得安ant,下载对应安装包,解压后配置环境变量: export ANT_HOME="/Users/yanzi/work/apache-ant-1.9.4" export PATH=${PATH}:${ANT_HOME}/bin 通过which ant检查是否安装成功. 2

  • Android 帧动画的实例详解

    Android 帧动画的实例详解 对于 Android 帧动画 大体上可以理解成 一张张图片 按一定顺序切换, 这样当连续几张图是一组动画时,就可以连起来了看成是一个小电影,你懂得 好得,比就装到这里,下面开始进入正题,由于产品需求 需要做一个 声音喇叭动态切换的样式,我特么第一就想到是帧动画切换,然后就百度了一些资料,发现 真的, 现在这个网上太多的资料是 copy粘贴过来的, 一错全错,对于这种情况我只想说,made,一群垃圾, 所以今天我将带你们走进Android 正确帧动画地址. 第一步

  • Android自定义View播放Gif动画的示例

    前言 GIF是一种很常见的动态图片格式,在Android中它的使用场景非常多,大到启动页动画.小到一个Loading展示,都可以用GIF动画来完成,使用也很方便,直接从美工那边拿过来用就成.如果项目赶时间或者自定义原生动画太麻烦,GIF都是一个很好的选择,相比于最新的WEBP格式的动画,也有更好的兼容性(毕竟已经出现很多年了). 关于图片加载我一直用的是Google推荐的 Glide,图片加载和缓存都做的很好,同样也支持GIF动画.不过Glide默认就是循环播放Gif,没有开放相关的接口来控制G

  • 详解Android应用中使用TabHost组件进行布局的基本方法

    TabHost布局文件 我们先来了解一下布局文件的基本内容: 1. 根标签及id 设置Android自带id : XML布局文件中, 可以使用 标签设置, 其中的id 需要引用 android的自带id : android:id=@android:id/tabhost ; getHost()获取前提 : 设置了该id之后, 在Activity界面可以使用 getHost(), 获取这个TabHost 视图对象; 示例 : 复制代码 代码如下: <tabhost android:id="@a

  • Android中ViewPager的PagerTabStrip与PagerTitleStrip用法实例

    零.概览 1.ViewPager说白了就是个控件,在使用时包名要带全是Android.support.v4.view.ViewPager.由于我的ADT-Bundle版本比较高,这个包默认自带了,且默认是随apk打包导出的.如下图: 如果在Android Private Libraries里没这个包,则要自己在属性的Libraries里自己添加.添加后记得在上图所示的Order and Export里将其打勾. 2.理论上说要实现滑屏只要一个ViewPager就可以了,不需要再在里面嵌套如下:

  • Android应用中通过Layout_weight属性用ListView实现表格

    今天主要说的是对Layout_weight属性的完全解析,以及利用Layout_weight这个属性使用ListView来实现表格的效果,我们都知道Android里面专门有一个TableLayout来实现表格的,说实话,我平常开发中用TableLayout还是比较少的,几乎没有用到,我们完全可以用LinearLayout和RelativeLayout来代替TableLayout的使用,自己开发中主要使用LinearLayout,RelativeLayout这两种布局,不过刚开始我还是偏爱于Rel

  • Android 中在有序广播中添加自定义权限的实例

    Android 中在有序广播中添加自定义权限的实例 前言; 有序广播说明: 有序广播因为要处理消息的处理结果,所以要复杂一些. * sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras); 如果只是想让广播

  • Android编程实现Dialog窗体监听的方法

    本文实例讲述了Android编程实现Dialog窗体监听的方法.分享给大家供大家参考,具体如下: 今天做了一个Dialong窗体监听包括窗体内的xml监听. 效果图: test.class代码 package com.test; import Android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; im

  • Android高级开发之性能优化典范

    本章介绍android高级开发中,对于性能方面的处理.主要包括电量,视图,内存三个性能方面的知识点. 1.视图性能 (1)Overdraw简介 Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布 局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,表现为应用卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减

随机推荐