Android新手需要知道的基础知识

好久不见. 提交于 2020-09-29 13:46:18

Android

简介:

手机或者平板电脑的操作系统

 

 

常用手机操作系统:

Ios    苹果

Android    小米,华为,三星等

塞班(曾经)  黑莓

 

 

Android系统架构

 

 

 

 

1. 应用程序层(Application)

后期所有安装在此设备中的应用都会被存储在此层中

 

2. 应用框架层 (FrameWork)

给开发应用时,即给应用程序层提供一些常用的系统类

 

如:

TelephonyManager  通过此系统类,可以 到当前设备的某些信息(可以监控该手机时通过还是响铃等状态)

PackageManager   通过此系统类可获取当前设备上安装的所用程序的包名信息

注意:

对于安装到手机上的应用程序来说,判断多个程序之间是否是同一程序,依赖于程序包名进行判断,而不是靠程序名称判断

如:要安装2个程序,微信,微辣,这两个程序包名一致了,此时只能有1个程序被安装到手机上

 

3. 类库和运行时 (Libraries,Runtime)

此层被分为了2部分:

1) 类库

用于提供系统类,

如: WebKit  负责浏览器中相关功能的实现

SQLite   负责提供数据库的相关功能

2)  运行时

负责提供应用程序运行的虚拟机

 

4. Linux 核心层 (Linux kernel)

提供支持系统运行的各种驱动程序

 

 

常见的面试题:

1. 各层的名字(尽量写英文)

2. Android 系统是基于Linux开发的,因此如果所做的工作是写底层代码工作,那么电脑系统需要使用Linux系统

 

 

开发个Android的应用程序或者游戏程序,开发完成后均是安装在应用程序层中,因此开发者的电脑系统不需要使用Linux系统,可选用的电脑系统:

1. Windows

2. Mac os

 

 

 

 

 

 

环境搭建:

相关工具的下载网站:

官网:www.developer.android.com   (连不上)

http://www.androiddevtools.cn/ 

 

开发工具的安装
1. 下载:

打开http://www.androiddevtools.cn/ ,选择ADT Bundle 部分进行下载

 

2.安装

将压缩包解压即可

注意:解压后文件夹所在的路径中绝对不能有中文和空格

 

解压后目录如下:

 

sdk  提供各个版本的安卓系统以及安卓系统类

作用类似于java中的jdk

 

SDK Manager 管理sdk的工具 ,提供sdk的更新和下载功能

 

Ecplise  开发工具

注意:此ecplise中自带adt 插件

Adt (Android develop tools)插件的作用:没有此插件无法进行android开发

即提供android程序的创建功能以及运行环境

 

 

如果想要使用原有的ecplise进行android开发,可考虑手动安装adt插件:

1. 打开http://www.androiddevtools.cn/,下载adt插件

2. 打开原有的ecplise,选择Help----- Install  New  Software,弹出窗口如下:

 

 

3. 在窗口中选择add按钮,选择local ,选中下载好的adt 插件压缩包,点击ok确认即可

 

 

 

 

 

 

 

 

 

创建Android工程:

1. New---Android Application Project

2. 在弹出的窗口中填写信息:

a. Application Name  应用名称

b. Project Name 工程名称

通常情况下两个名称相同,两者的区别在于:

应用名称控制的是程序安装到设备上之后,在设备上显示的名字

工程名称 控制的是该Android工程在开发工具中显示的名字

 

c. Package Name 程序包名

在起名字时要尽可能的保持包名的唯一性

常见的命名规则:

com.公司名.应用名.具体分包的功能名

 

注意:包名中决定不能中文,空格等

只能选取:a到z,0到9,_和.  并且,决定不能数字开头

d.  Minimum Required SDK  指定所需最小sdk

如:指定的是4.0(14)版本,那么此程序开发完成后无法被安装在4.0以下的手机上

e. Target  SDK  目标sdk ,即指定改程序最好是安装在哪个版本的手机上

f. Complie With  当前工程绑定的sdk版本

g. Theme  指定应用的主题,主要负责设置页面背景色等、

h. 一直Next  ,最后Finish即可

 

 

 

 

模拟器的安装,真机的连接

 

1. 模拟器

a. 官方原生模拟器

优点: 稳定

缺点:有些卡(电脑配置高无此缺陷)

 

创建方式:

1. 点击Android Vitrul Device Manager图标

2. 选择Device Definitions 标签,挑选任意模拟器后选择Create AVD 按钮,添加相应数据后,确认即可。

AVD Name   给创建的模拟器起一个任意的名字

Device: 设置创建的模拟器的屏幕尺寸和分辨率是多少

Target : 指定模拟器中运行的Android系统版本(如,4.0,7.0等)

CPU/ABI: 设置模拟器cpu硬件类型

Keyboard:控制在输入内容时是否要显示虚拟键盘

Skin: 通常选择前两项中的任意一项,用于控制模拟器上是否要显示Home键,音量上下键等物理按键

Memory  options: 设置运行内存的大小

Internal  Storage: 设置模拟器机身内存的大小

SD card: 设置外置存储卡的大小

 

3. 相应配置设置后,选择ok即可

 

启动方式:

选中相应模拟器后,选择Start—Launch 即可。启动后自动连接ecplise的

 

 

 

 

B和c优点:

速度比较快,夜神还可以实现定位功能

缺点:不够稳定,容易与ecplise断开连接

 

 

 

b. 夜神模拟器(逍遥模拟器)

1)运行安装,一直下一步,最后Finish即可

2)安装完成后启动即可,自动完成与ecplise的连接工作

 

c. Genymotion

国外产的模拟器,服务器也在国外

1. 下载模拟器安装包:

打开官网下载安装包 ,https://www.genymotion.com/

选择Buy Now

 

选择BASIC中的Get started按钮

 

选择Download 按钮

 

 

选择With VirtualBox中的Download按钮进行下载即可

2. 安装模拟器

a. 运行下载过后的安装包

安装过程中注意: 如果弹出warning警告窗口,选择Yes,继续安装

Genymotion和VirtualBox都需要安装模拟器才能够运行

b. 安装完成后打开VirtualBox ,选择管理---导入虚拟电脑----选择本地的模拟器导入

(如没有本地模拟器,则可省略此步骤)

 

c. 打开Genymotion,选择已导入的模拟器,选择start即可启动模拟器

d. 如果需要下载更多的模拟器,那么可以点击Add按钮,登录后即可看到n多版本的模拟器,选择想要的版本后点击Download按钮下载即可

 

3. 运行模拟器

双击运行Genymotion,选择要启动的模拟器后,选择start按钮即可

 

 

 

2. 真机的连接  

解决方式:

1. 找个手机助手软件(如腾讯手机助手)在电脑上安装一下

2. 通过数据线将手机和电脑连接

3. 手机—设置---开发者选项--- 将Usb调试功能打开

4. 手机助手软件会自动将手机和ecplise连接起来

判断是否连接成功:

通过Window—Show View—Other—Android---Devices选项显示Devices标签,

此标签中可显示所有已连接到ecplise的设备

 

 

 

易发生的问题:

模拟器和ecplise断开连接,即Devices标签中没有显示已打开的模拟器,

解决方式如下:

1. 在Devices标签右上角位置,点击三角形图标,选择Reset adb选项

2. 打开cmd窗口,执行命令:

通过 cd 路径,进入sdk\platform-tools文件夹

adb  kill-server  关闭adb连接服务

adb  start-server启动adb连接服务

adb connect 127.0.0.1:62001  直接连接夜神模拟器

 

如果需要通过命令连接Genymotion模拟器:

adb connect 192.168.56.101:5555

 

3. 关闭ecplise,模拟器,任务管理器中的所有adb.exe进程,然后重新启动ecplise以及模拟器

4. 重启电脑

 

 

 

 

 

Sdk文件夹内常用子文件的功能

Sdk文件夹整体功能: 提供各种版本android系统,以及系统类等

 

常见子文件夹:

Platforms   用于存储android系统,

即,当新建工程指定Complie With,以及创建原生模拟器指定Target时,能够提供的选择版本有哪些

 

Platform-tools  只要用于存储管理模拟器和ecplise连接的adb命令

 

System-images  系统镜像,用于存储提供原生创建时所选择的cpu\ABI的类型

 

Sources 用于存储各版本的系统源码

 

extras  用于存储一些额外系统类(如v4包中系统类)的源码以及使用样例

 

docs  用于提供本地版的官方文档

 

build-tools 用于存储提供编译功能的相关工具

 

tools 提供一些工具,

如draw9patch.bat,  用于绘制9patch图片工具

 

 

 

Android Application Project 工程结构:

Src  用于存储开发者编写的.java文件

Android 4.4.2 压缩文件   提供系统类

Android Private Libraries 压缩文件 ,提供一些额外的系统类

 

ic_launcher-web.png   系统提供的默认图标

project.properties   用于描述当前工程 Complie With 绑定的android系统版本

proguard-project.txt   用于配置混淆文件

 

AndroidManifest.xml  清单文件,主配置文件,用于注册一些程序的需要信息

如:程序启动时,要运行哪个类中的方法

 

bin  此文件夹中的内容由系统自动生成,存储编译后的文件

 

libs  添加一些第三方的jar包

 

assets 资产文件夹,用于存储一些图片,mp3,html等文件

 

res  资源文件夹,用于存储一些图片,文字等数据

注意:后期在向res中添加资源文件时,千万要注意文件命名

命名原则: 必须是a-z,0-9,_和.   其余均不行,并且不能以数字开头

 

gen  此文件夹中的所有内容也是由系统自动生成,无法手动改变

此文件夹中有一个比较重要的文件----R.java  ,称为R文件

在R文件中,给res中的每一个资源文件配置一个16进制的唯一id

 

 

Assets文件夹中的文件与res中的文件有什么区别?? 或者说,有一张图片,放在res中好还是放在assets中比较好??

区别:

1. res中的所有资源都会在R文件中有一个对应的16进制的数字id值,而assets中的文件是没有的

2. res中的资源在会被编译,而assets中的文件,则生成安装包后会保持原样

3. 大部分情况下, 工程中所需使用的所有数据均是放置在res中

 

 

 

AndroidManifest.xml文件功能:

 

 

 

res文件夹作用:用于存储当前工程所需要使用的所有图片,文字等资源文件

其中子文件夹的具体作用:

 

以上所有所有文件夹都是用于存储图片的

 

values  此文件中存储xml文件,这些xml文件的作用:用于存储各种文字,颜色,等数据

 

menu  存储xml文件,这些xml文件的作用:用于设置后期菜单的显示内容

 

 

layout 存储xml文件,此xml文件的作用:用于存储布局文件

 

 

 

补充:

Sdk更新问题:

解决方式一:

打开http://androiddevtools.cn/

下载相应内容后,放置到相应位置

如: 需要启动一个5.0的模拟器,为确保能够创建此模拟器,

那么需要下载5.0的sdk 以及5.0 System images

下载完成后分别将内容放入platforms文件夹以及system-images文件夹即可

 

 

解决方式二:

 

直接运行SDK Manager 或者点击SDK Manager图标,选中要下载内容后,点击Install按钮即可

 

 

 

公司的组成:

写服务器的  

美工  做图片的

项目经理   解决技术难点,整体统筹的

产品经理   跟客户打交道

 

程序员 1到3个人

测试人员 1个

 

 

编写工程时:

1. 创建工程

2. 创建(区分)文件夹 (初学时可省略此步骤)

3. 确认整个工程有几个页面

4. 依次完成相应页面

完成时:需要实现两大方面的作用:

1) 处理页面的显示,如:设置每个按钮,图片,文字等的显示位置

2) 处理页面与用户的交互 。 如:处理当用户手指点击按钮后,应该做出什么样的反馈

 

 

 

 

res---layout文件中布局文件的作用:控制页面的显示

 

 

程序的启动流程:

1. 安装此程序对应的apk文件

2. 在apk文件中找到AndroidManifest.xml文件,读取该文件中的代码

主要要读取的是:

 

含有以上4行代码的activity标签,读取该标签name属性的值,用于确认启动类的路径,即要去运行哪个类中的代码

 

3. 运行此类中的onCreate方法

 

 

 

 

 

 

 

 

 

附送内容:

推荐网站:

www.csdn.net   

 

http://www.xueandroid.com/

 

http://www.javaapk.com/

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!