一:什么是安卓

1.Android是一种基于Linux的自由及开放源代码的操作系统。

2.Android操作系统最初由AndyRubin开发,主要支持手机。

3.Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

4.优点:开放,平等,方便,硬件复杂。
 
二:Android的体系结构
安卓采用了分层的体系结构。分为四层。
1.应用程序层
系统自带程序和开发人员的程序是完全平等的。
2.应用程序框架层
就是一些应用程序的框架。
3.系统运行库
(1)程序库
包括一些C/C++程序库,通过应用程序为开发者提供服务。
(2)Android运行时库
包括一个核心库,有大多数功能,Android的虚拟机Dalvik也包含在里面。
4.Linux内核
Android的核心服务依赖于Linux内核。
 
三:Android开发的分类
可分为下面两大类:
1.系统移植开发
是在具体硬件上开发,涉及到底层需要移植开发Linux中相关的设备驱动程序及Android本地框架中的硬件抽象层。在移植时只需实现这些接口即可。
2.Android应用程序开发
应用程序开发可以基于硬件设备,也可以基于Android模拟器,处于顶层,使用Android系统提供的Java框架(API)进行开发。
 
四:Android Studio开发环境搭建
1.简介
  (1)是基于IntelliJ IDEA的Android开发环境。
  (2)在安装Android Studio之前需安装Java JDK环境。
2.设置Android SDK
第一次运行时需设置,设置的位置如下:
这里选择的是Android 9.0。
3.创建虚拟设备AVD
(1)简介
   AVD主要是在PC端模拟手机环境来运行Android操作系统平台,每个平台都有自己的内核,系统图像,外观显示,用户数据区和仿真的SD卡等。
创建虚拟环境如下:
这里我已经创建了两个虚拟环境了,如果你没有创建,还需要自己创建。
4.设置环境变量
在环境变量中,系统变量下,需要找到Path变量,并找到Android Studio安装目录下的platform-tools完整路径和tools完整路径,并添加到Path路径:
 
五:创建第一个APP--生成Android应用框架
1.创建项目的方法这里不介绍了,网上一大堆,下面就讲解遇到的问题。
2.创建好的项目结构如下:
3.运行AVD虚拟机,会出现下面的问题:
这时候就需要下面的解决方法:
重启电脑,然后按F2或者F10,进入到BIO中,选择Config --cpu -- Intel-Virtualization Technology 将这个选项开启 。
由于这种方法会很慢,因此大部分不用该方法。
4.在真机上运行程序
在手机上打开开发者模式,并打开USB调试:
 然后再选择如下:
然后手机上就会出现下面的运行成功结果。
 

Android Studio安卓学习笔记(一)安卓与Android Studio运行第一个项目的更多相关文章

  1. Android安装器学习笔记(一)

    Android安装器学习笔记(一) 一.Android应用的四种安装方式: 1.通过系统应用PackageInstaller.apk进行安装,安装过程中会让用户确认 2.系统程序安装:在开机的时候自动 ...

  2. Flutter学习笔记(30)--Android原生与Flutter混编

    如需转载,请注明出处:Flutter学习笔记(30)--Android原生与Flutter混编 这篇文章旨在学习如何在现有的Android原生项目上集成Flutter,实现Android与Flutte ...

  3. Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通

    原文:Android菜鸟的成长笔记(1)--Android开发环境搭建从入门到精通 今天在博客中看到好多Android的初学者对Android的开发环境的搭建不熟悉而导致不能进行学习,所以我决定自己写 ...

  4. Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上)

    原文:[置顶] Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上) 我们在用手机的时候可能会发现,即使应用被放到后台再返回到前台数据依然保留(比如说我们正在玩游戏,突然电话 ...

  5. Android菜鸟的成长笔记(11)——Android中的事件处理

    原文:[置顶] Android菜鸟的成长笔记(11)——Android中的事件处理 Android提供了两种方式来处理事件,一个是基于回调的事件处理,另一个是基于监听的事件处理,举个例子: 基于回调的 ...

  6. Android菜鸟的成长笔记(5)——Android系统源代码你下载了吗?

    原文:Android菜鸟的成长笔记(5)--Android系统源代码你下载了吗? 在上一篇中我们用Android系统源代码分析了我们前面写的代码,有的朋友可能就会问怎么才能下载到Google官方的源代 ...

  7. Android菜鸟的成长笔记(15)—— Android中的状态保存探究(下)

    原文:Android菜鸟的成长笔记(15)-- Android中的状态保存探究(下) 在上一篇中我们简单了解关于Android中状态保存的过程和原理,这一篇中我们来看一下在系统配置改变的情况下保存数据 ...

  8. Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目

    Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...

  9. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引 代码工程地址: https://g ...

随机推荐

  1. iOS 注释

    1) 参数的注释: UIButton *btnSend;/**< 发送按钮 */ 效果: 2) 方法的注释: type1(无参数): /** table 相关设置 */ -(void)confi ...

  2. C++ protobuffer 前后端通信 简单应用

    后端发送多个protobuffer消息到前端,前端用socket监听,如何区分消息类型呢? //定义心跳包 DseHeartbeat _DseHeartbeat; DseHeartbeat _DseH ...

  3. JDK的命令行工具系列 (三) jhat、jstack

    jhat: heapdump文件分析工具 在前两篇系列文章JDK的命令行工具系列 (一) jps.jstat.JDK的命令行工具系列 (二) javap.jinfo.jmap中, 我们已经介绍过了jp ...

  4. 夯实Java基础(三)——面向对象之继承

    1.继承概述 继承是Java面向对象的三大特征之一,是比较重要的一部分,与后面的多态有着直接的关系.继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法, ...

  5. DesignPattern系列__10单例模式

    单例模式介绍 单例模式,是为了确保在整个软件体统中,某个类对象只有一个实例,并且该类通常会提供一个对外获取该实例的public方法(静态方法). 比如日志.数据库连接池等对象,通常需要且只需要一个实例 ...

  6. idea 新建不了servlet文件 方法(1)

    在pem.xml中添加较新版本的servletapi包 <dependency> <groupId>javax.servlet</groupId> <arti ...

  7. 第三章 Linux基本命令操作

    第三章  Linux基本命令操作 ¨  本节所讲内容: ¨  3.1  Linux终端介绍 Shell提示符 Bash Shell基本语法 ¨  3.2  基本命令的使用:ls.pwd.cd.hist ...

  8. django drf框架中的user验证以及JWT拓展的介绍

    登录注册是几乎所有网站都需要去做的接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做的一个关于网上商城的项目中,引入了一个拓展DRF JWT,专门用于做验证和用户状态保存.这个 ...

  9. byte数组和正数BigInteger之间的相互转换

    旧代码 public static void main(String[] args) { SecureRandom random = new SecureRandom(); byte[] key = ...

  10. node 删除和复制文件或文件夹

    [toc] 创建时间:2019-08-12 注意:在win10,v10.16.1 环境运行无问题 首先引入相关包(会在使用处具体说明): const fs = require('fs') const ...