安卓学习笔记(一)

news2024/12/24 9:07:16

从今天开始我们开始学习安卓的知识:

1.0 Android基础入门教程

1.Android背景与当前的状况

Android系统是由Andy Rubin创建的,后来被Google收购了;最早的版本是:Android 1.1版本 而现在最新的版本是今年5.28,Google I/O大会上推出的Android M,有趣的是Android系统的命名都是以点心来命名的,下述表是15个Android版本名称,对应API号以及发布时间!

系统版本名称API版本号发布时间
Android 1.5:Cupcake:纸杯蛋糕32009.4.30
Android 1.6:Donut:甜甜圈42009.9.15
Android 2.0/2.0.1/2.1:Eclair:松饼5/6/72009.10.26
Android 2.2/2.2.1:Froyo:冻酸奶82010.5.20
Android 2.3:Gingerbread:姜饼92010.12.7
Android 3.0:Honeycomb:蜂巢112011.2.2
Android 3.1:Honeycomb:蜂巢122011.5.11
Android 3.2:Honeycomb:蜂巢132011.7.13
Android 4.0:Ice Cream Sandwich:冰激凌三文治142011.10.19
Android 4.1:Jelly Bean:果冻豆162012.6.28
Android 4.2:Jelly Bean:果冻豆172012.10.30
Android 4.3:Jelly Bean:果冻豆182013.7.25
Android 4.4:KitKat:奇巧巧克力192013.11.01
Android 5.0:Lollipop:棒棒糖212014.10.16
Android M:预览版222015.5.28

 

好了,除了上面这些公共版本外,当然还有一些其他的版本,截止2015.1,各个版本的市场份额如下:

 看完上面的信息,我们可能有这样的一个疑问: 那么多的系统版本,我们开发的时候要针对哪个版本进行开发? 这就是作为一个Android必须面对的Android的"碎片化"问题了,而这个问题又分为两个: ①系统碎片化:我们开发App时可能需要做到低版本兼容,比如,最低兼容至2.3版本;由于各种Rom定制的盛行,国人都喜欢对原生系统做一些更改,这导致了在原生系统上可行,而在定制Rom上不可行的问题,比如相机调用~ ②屏幕碎片化:市面上各种各样屏幕尺寸的手机,4.3寸,4.5寸,4.7寸,5.0寸,5.3寸...等等,除了手机外,还有Android平板,所以开发时我们可能要处理这个屏幕适配的问题,当然,刚学我们并不需要去考虑这些复杂的东西,后续实际开发我们再来深究!

2.Android系统特性与平台架构

系统特性:

  • 应用程序框架支持组件的重用与替换(app发布时遵守了框架的约定,其他app也可以使用该模块)
  • Dalvik虚拟机:专门为移动设备优化 -集成的浏览器:开源的WebKit引擎
  • SQLite结构化的数据存储
  • 优化的图形库,多媒体支持,GSM电话技术,蓝牙等
  • 采用软件叠层方式构建

平台架构图:

架构的简单理解:

  1. Application(应用程序层) 我们一般说的应用层的开发就是在这个层次上进行的,当然包括了系统内置的一组应用程序,使用的是Java语言
  2. Application Framework(应用程序框架层) 无论系统内置或者我们自己编写的App,都需要使用到这层,比如我们想弄来电黑名单,自动挂断电话,我们就需要用到电话管理(TelephonyManager) 通过该层我们就可以很轻松的实现挂断操作,而不需要关心底层实现
  3. Libraries(库) + Android Runtime(Android运行时) Android给我们提供了一组C/C++库,为平台的不同组件所使用,比如媒体框架;而Android Runtime则由Android核心库集 + Dalvik虚拟机构成,Dalvik虚拟机是针对移动设备的虚拟机,它的特点:不需要很快的CPU计算速度和大量的内存空间;而每个App都单独地运行在单独的Dalvik虚拟机内每个app对于一条Dalvik进程)而他的简单运行流程如: 

  4. Linux内核 这里就是涉及底层驱动的东西了,一些系统服务,比如安全性,内存管理以及进程管理等

3.本节小结:

本节对Android的历史背景以及现状进行了了解,然后简单分析了Android的系统特性以及系统架构,这些概念性的东西,我们了解了解即可,而下一节我们将开始Android环境的搭建!

 

 

1.2 开发环境搭建

分类 Android 基础入门教程

现在主流的Android开发环境有: ①Eclipse + ADT + SDK ②Android Studio + SDK ③IntelliJ IDEA + SDK 现在国内大部分开发人员还是使用的Eclipse,而谷歌宣布不再更新ADT后,并且官网也去掉了集成Android开发环境的Eclipse下载链接,各种现象都表示开发者最后都终将过渡到Android Studio,当然这段过渡时间会很长,但如果你是刚学Android的话建议直接冲Android Studio着手;而且很多优秀的开源项目都是基于Android Studio!当然,在本教程中对两种开发环境都会进行一个介绍,用哪个取决与你自己~ 还有一个IntelliJ,和Android Studio差不多的,并不对此进行讲解!

1.JDK安装与配置

  • Step 1:下载JDK 可以到官网进行下载:Jdk官方下载 也可到笔者网盘下载:笔者网盘 PS:这个随便下一个都可以,关系不大,32位的只能下32位哦!

  • Step 2:JDK安装 傻瓜式的下一步即可!

  • Step 3:环境变量的配置 配置环境变量是为了方便我们一些命令行的操作,后续会用到! 右键我的电脑——>高级——>环境变量 

     新建JAVA_HOME  修改PATH变量,别把原本的东西删掉!!!!  新建CLASSPATH  验证环境是否配置完成 打开电脑的cmd(命令行),win键 + R输入cmd,然后在命令行依次javac和java,出现如图效果表示配置完成: 


2.开发工具二选一

一开始也说了开发环境IDE的现状,另外前面忘记说一点:Android Studio是比较吃配置的,如果电脑不怎么好,建议还是先使用Eclipse进行Android开发,下面先说下我们熟悉IDE开发APP的流程,按照下述流程来熟悉IDE的使用:

然后下面两个选一个,开始我们的Android开发之路吧!

Eclipse + ADT + SDK: Android Studio + SDK:


3.相关术语的解析

  1. Dalvik: Android特有的虚拟机,和JVM不同,Dalvik虚拟机非常适合在移动终端上使用!
  2. AVD: (android virtual machine):安卓虚拟设备,就是安卓的模拟器
  3. ADT: (android development tools)安卓开发工具
  4. SDK:(software development kit)软件开发工具包,就是安卓系统,平台架构等的工具集合,如adb.exe
  5. DDMS:(dalvik debug monitor service)安卓调试工具
  6. adb:安卓调试桥,在sdk的platform-tools目录下,功能很多,命令行必备
  7. DX工具:将.class转换成.dex文件
  8. AAPT:(android asset packing tool),安卓资源打包工具
  9. R.java文件:由aapt工具根据App中的资源文件自动生成,可以理解为资源字典
  10. AndroidManifest.xml:app包名 + 组件声明 + 程序兼容的最低版本 + 所需权限等程序的配置文件

后续内容对于初学者的你可能有点难度,但后面回头,你会发现这些东西很有用~ 看不懂的话,可以先跳过

4.ADB命令行的一些指令

执行ADB指令之前我们还需要为我们的SDK配置一下环境变量 Step 1:新建一个ANDROID_HOME的环境变量,把sdk根目录地址贴上去: 

 Step 2:更新Path环境变量,在Paht开头加上:%ANDROID_HOME%\tools; 即可 配置完了,接下来就来学习指令了: 


5.APP程序打包与安装的流程:


6.APP的安装过程:

7.本节小结

本节我们对Android开发IDE的现状进行了分析,建议初学者硬件条件允许的话,使用Android Studio来进行Android APP的开发,讲述了JDK的安装与配置,以及熟悉IDE的流程,一些关键名称的解析,ADB命令行的常用指令,最后还有程序的打包安装和安装过程的解析!经过这章相信大家对Android开发有了个简单了解,了解开发一个程序的流程,以及对应的项目目录结构!相信大家会抱怨模拟器AVD跑得很慢,下节会给大家介绍一个比真机还快的Android模拟器——Genymotion的安装使用!

 

1.2.2 使用Android Studio开发Android APP

分类 Android 基础入门教程

写在前面

本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快捷键,小技巧等会再另一篇文章中详细地介绍!

1.下载Android Studio


官网下载:Android Studio for Window ... 百度云下载:android-studio-bundle-141.1903250-windows.exe


2.安装Android Studio

傻瓜式的下一步而已,只列出需要注意的页面:

  


3.新建工程

安装完毕后,打开我们的Android Studio,第一次启动需要下载SDK等一些东西,时间比较长,笔者等了大概40分钟才下载完毕

选择第一项,新建一个Android项目

选择开发程序将运行在哪个平台上:

选择Activity的风格:

设置进入程序一个页面后的Activity的一些信息

Finish然后是漫长的等待~


4.IDE的界面分析

先看下整个界面吧:

接着看下我们的项目结构,而我们一般关心的只是app这个目录:


5.运行下程序试试

点击菜单栏的X,即可运行程序:


6.本节小结

Android Studio的用法还是比较简单的,当然笔者也是刚用Android Studio,后续还会写一篇更深入一点的文章,这里大家琢磨琢磨,暂时能跑起程序,知道在哪里写代码,怎么看Logcat就可以了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/609427.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Logstash部署与使用

ElasticSearch 1、ElasticSearch学习随笔之基础介绍 2、ElasticSearch学习随笔之简单操作 3、ElasticSearch学习随笔之java api 操作 4、ElasticSearch学习随笔之SpringBoot Starter 操作 5、ElasticSearch学习随笔之嵌套操作 6、ElasticSearch学习随笔之分词算法 7、ElasticS…

123网盘在线解析PHP版源码

123网盘解析PHP版本源码是一种非常实用的工具,可以方便地帮助用户在网页上直接解析出其它网站中的资源,并提供下载链接。当用户需要获取某些资源时,往往需要通过各种搜索引擎或者专业的资源网站进行查找,而且很多时候找到了资源链…

Android NDK集成OpenCV使用C++的.h和.so库函数

Android NDK集成OpenCV使用C的.h和.so库函数 opencv可以作为一个单独的Android module库,被工程下的其他模块使用,但是这样就没法在Android NDK项目的c代码直接使用opencv的.h文件和.so文件。要在Android NDK项目C代码文件中使用,则需要以An…

Nautilus Chain上首个DEX PoseiSwap即将开启IDO

据悉,Nautilus Chain 上的首个 DEX PoseiSwap 即将开启 IDO ,根据官方的最新公告显示,PoseiSwap 即将于 6 月 13 日至 6 月 14 日期间,在 Bounce 平台开启其治理通证 $POSE 的 IDO(Initial DEX Offering)&a…

数据分析--Numpy初级(一)

Numpy初级 Ndarray对象dtype对象 Numpy是数据分析的基础库,它支持大量的维度计算与矩阵运算。同时他也是一个运行速度非常快的数学库,主要用于数组计算,具有线性代数、傅里叶变换、随机数生成等功能。 Ndarray对象 Numpy最重要的一个特点就…

【内部类】

目录 1.什么是内部类2.内部类分类2.1静态内部类2.非静态内部类2.3 局部内部类(几乎不用,大家了解) 3.匿名内部类 1.什么是内部类 在Java中,可以将一个类定义在一个类中或者在一个方法中,前者称为内部类,后…

JAVA打印Hello World的底层实现

任何一个学过JAVA的人应该都对这段代码非常熟悉。空闲时间翻了下代码,看看它的底层是怎么实现的 public class HelloWorld {public static void main(String[] args) {System.out.print("Hello, World!");} }首先点开out,发现它是System类中的…

JAVA微服务_网关

服务网关 什么是服务网关/API网关 API Gateway(APIGW / API 网关),顾名思义,是系统对外的唯一入口。API网关封装了系统内部架构,为每个客户端提供定制的API。 近几年来移动应用与企业间互联需求的兴起。从以前单一的…

数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)

目录 问题分类 无权图单源最短路径算法 思路 伪代码 时间复杂度 代码实现(C语言) 有权图单源最短路径算法 Dijkstra(迪杰斯特拉)算法 伪代码 时间复杂度 代码实现(C语言) 多源最短路径算法 …

《Apollo 智能驾驶进阶课程》四、感知

1. 感知概貌 2. 传感器和标定 激光雷达:主动式,发射功率限制 Camera: 被动式,受到光照影响大 Radar : 多普勒效率 相对速度 超声波: 感知距离有限,倒车时使用。 … 最后设备还在研发过程中。 PnP问题,解决标定。 IC…

chatgpt赋能python:Python实现字符串匹配的SEO优化

Python实现字符串匹配的SEO优化 在现代网络中,SEO(搜索引擎优化)已成为一项必不可少的技能。它涉及到网站的排名、用户的流量和营销策略等方面。关键字匹配是一种常见的SEO技术,它可以帮助你的网站在搜索引擎中排名更高。 本篇文…

Java 实现判定顺序表中是否包含某个元素的方法

一、思路 1.定义一个toFind变量来传入要查找的元素 2.遍历整个顺序表并判定当前下标的元素等不等于toFind 3.如果等于就返回一个true,否则返回false。 二、图解 首先调用以下的方法求出顺序表的长度,再使用 for 循环遍历每一个元素。 // 求顺序表的长…

《嵌入式系统》知识总结9:使用STM32固件库操纵GPIO

STM32固件库(函数库) “STM32 标准函数库”它是由 ST 公司针对 STM32 提供的函数接口,即 API (Application Program Interface),开发者可调用这些函数接口来配置 STM32的寄存器,使开发人员得以脱离最底层的寄存器操作&…

《阿里大数据之路》研读笔记(1)

首先先看到OLAP和OLTP的区别: OLTP(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户或者是操作人员。 OLAP(Online analytical processing):…

libVLC 抓取视频帧并渲染(QGraphicsView)

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在《libVLC 抓取视频帧并渲染(QWidget)》介绍完 QWidget 对视频帧的渲染之后,是时候介绍第二种方式了 - QGraphicsView/QGraphicsScene/QGraphicsItem 图形视图框架。 基本步骤:自定义一个 QGraphicsIte…

RK3588平台开发系列讲解(驱动基础篇)等待队列

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、等待队列二、等待队列头三、等待队列项四、添加/删除队列五、等待唤醒六、等待事件沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Linux 内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧…

KeepChatGPT: chatGPT增强插件,解决报错、保持活跃,让AI更丝滑

KeepChatGPT: chatGPT增强插件,解决报错、保持活跃,让AI更丝滑 这是一个ChatGPT的畅聊与增强插件。开源免费。不仅能解决所有报错不再刷新,还有保持活跃、取消审计、克隆对话、净化首页、展示大屏、展示全屏、言无不尽、拦截跟踪…

周赛348(模拟、反向思维、数位DP)

文章目录 [6462. 最小化字符串长度](https://leetcode.cn/problems/minimize-string-length/)阅读理解 [6424. 半有序排列](https://leetcode.cn/problems/semi-ordered-permutation/)模拟 [6472. 查询后矩阵的和](https://leetcode.cn/problems/sum-of-matrix-after-queries/)…

java并发编程:volatile关键字详解

文章目录 内存可见性禁止重排序什么是重排序?重排序的类型有哪些呢? 内存屏障volatile的用途 在Java中,volatile关键字有特殊的内存语义。volatile主要有以下两个功能: 保证变量的内存可见性禁止volatile变量与普通变量重排序 内存可见性 …

RK3588平台开发系列讲解(驱动基础篇)中断下文之 tasklet

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、中断下文之 tasklet二、tasklet相关函数介绍三、tasklet使用示例四、中断视频介绍沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 介绍中断下文之 tasklet 的基础理论知识。 一、中断下文之 tasklet 中断…