使用的软件 - eclipse(ADT)
1. 在Package Explorer栏右键点击, New → Android Application Project
Application Name: 在安装到手机上时应用程序显示的名字 (例如微信, QQ)
Project Name: 在Package Explorer栏里面显示的工程名字
Package Name: 包名 (包名不能带有中文, 会构建失败) ,大部分都是公司域名的倒写
Minumum Required SDK: 编译出来的应用程序, 要运行的, 支持的设备最低级要跑在安卓几 (默认就行)
Target SDK: 目标的SDK版本 (高于18也可以, 最好不要低于18)
Compile With: 我ADT里面的编译工具是4.4的
Theme: 主题 (比如我们可以导入华为主题, 小米主题等等), 这边我们选择默认
2. 做完上面的步骤我们选择Next
Create custom launcher icon: 是否创建启动的图标, 我们选择创建
Create activity: 是否在一个空工程里面创建activity, 我们也选择创建 (activity: 一个页面, 一个页面就称为一个activity)
Create Project in Workspace: 代码保存的位置
Add project to working sets: 添加一些工程到你的工作区域里面来, 这里我们就不管了
3. 这里我们基本不用动, 继续Next
Image File: 我们程序安装完后图标默认的是一个小机器人, 如果在未来开发的过程中想要漂亮一点的话, 我们可以选择右边的Brwose导入自己做好的图片
4. 这页我们就讲Image File, 继续Next
Create Activity: 创建一个Activity, 我们这里创建一个空的(Blank Activity), 作为学习的话, 我们就先创建一个空的Activity, 下面的Fullscreen Activity和Master/Detail Flow产生的一些代码我们可能看不懂
5. 继续Next
Activity Name: 我们建完会产生一个页面, 这个页面我们叫做主页面(MainActivity, 对应java文件), 默认就行
Layout Name: 布局名字, (布局是什么, 我们后面回去讲解, 布局也是对应一个文件, 这是文件名)
6. 后面我们也不做修改, 点击Finish, 程序构建完毕
7. 运行程序
怎么运行这个程序, 右键新建的工程→Run As→Android Application, 随后就会构建一个工程, 随后会弹出一个提示
没有发现虚拟设备, 问我们是否添加一个新的安卓虚拟设备, 你可以选择yes或者no, 但通常eclipse自带的一些模拟器运行会有点慢, 所以我们选择No, Cancel。
之后我们自己去下载一个夜神模拟器, 用模拟器跟eclipse进行连接, 用eclipse来运行我们的工程
下载完之后模拟器怎么和eclipse进行关联呢?
首先, 打开cmd命令窗口, 运行adb指令, 看你们自己的电脑有没有, 如果不认识的话, 我们进入安装eclipse时候的目录, 进入sdk文件夹, 再进入里面的paltform-tools文件夹, 把这里的路径拷贝起来, 打开我们电脑的高级系统设置, 配置里面的环境变量
之后, 我们重新在cmd命令窗口底下输入adb, 这时候就会显示相关的数据了
然后, 我们写入指令adb connect 127.0.0.1:62001(这里的127.0.0.1代表的是本地的地址, 62001是夜神模拟器默认的端口号)
这时候还可能有连接不上的问题, 我们先运行adb kill-server, 之后再运行adb start-server, 然后重新运行adb connect 127.0.0.1:62001, 应该就可以了。
如果你们每跑一次工程就要重新connect一次的话, 可以试下重启夜神模拟器
下面就是跑起来的安卓工程, 我们就实现第一个安卓程序的运行啦!
1. 首先, 这是整个工程
3. gen是存放一些自动生成的文件, 在这里我们关心的是R.java的文件, 这里存放的是程序页面, 按键, 文本的ID, 是程序自己生成, 不用用户去修改
4. Android 4.4和Android Private存放的是安卓开发的一些库, 供开发者调用
6. bin文件存放的是编译完生成的一些文件, 包括我们关心的apk
7. libs存放的是一些依赖库, 和上面的Android 4.4差不多的一个意思
8. res文件: drawable文件是用来存放app程序要用到的一些图片, 这里还分高低分辨率, h–高, l–低, 以此类推
layout是存放布局文件的文件夹, 一般一个activity(安卓界面)对应一个布局(例如MainActivity.java文件所对应的布局页面就是activity_main.xml文件)
剩下的这些文件夹主要存放的是一些参数, 或者自定义控件的文件
8. AndroidManifest.xml文件: 主要是对APP的配置
权限的配置: 网络访问权限, 名片夹访问权限, 相机访问权限
目标继器SDK版本, APP的名字, APP的图标, 第一个被加载, 启动页面的配置
总结: 在开发过程中, 主要用到的是上面介绍的src里面的java文件和layout里面的xml布局文件
安卓系统的界面是一个程序, 它就是Launcher进程。它会不断检测用户的触摸落在哪个app上, 如果你触摸的地方是个空白的地方, 它不做处理, 如果你滑动, 它就给你滑动, 这就是Launcher进程正在做的事情。当用户触摸到app的时候, 它实际上会通过这个bind驱动去通知底层的一些服务框架, 比如system server, system server会去启动app的进程, app进程有一个application thread, 有一个activity thread, 然后再去启动activity, 这是一个非常复杂的流程。(但这并不是我们目前需要知道的)
在这个阶段, 我们需要知道的是Launcher进程检测到用户触摸到app时, 这个工程里面最先加载的应该是AndroidManifest.xml, 首先它会判断你的sdk版本, 也就是你安装的目标机器是否承载得了这个安卓app, 有时候你承载不了装都装不上, 有时候装上了却不能运行。再来就是获取你需要的一些权限
例如我们现在给我们第一个安卓程序加一个网络权限
当你有多个界面的时候, 该启动哪一个呢? 大家都是Activity, 这时候有一组intent-fliter的标签放在这里, 它就代表我们src里面的MainActivity是第一个被加载的页面
也就是说AndroidManifest.xml是我们app运行时第一个被加载的文件, 它为这个app去运行一些先决条件, 以及去判断app第一个加载的界面是哪个文件
java文件里面是创造了一个MainActivity类去继承了Activity类, 相当于他创造了一个新的空白页面, 然后里面的onCreate函数就是运行这个界面(类似于main函数), 我们以后的工作就是从这里开始做。
怎么让java文件和xml文件关联起来呢?
其实就是我们上面说的gen文件底下的R.Java文件在发挥作用, 里面存放的是程序页面, 按键, 文本的ID, 就是靠这个ID, setContentView才能找到对应的界面。
创建一个新的Activity
右击src文件夹→New→other
选择Android里面的Android Activity, 随后Next, 选择Blank Activity(空页面), 继续Next
取好第二个界面的名字, 点击Finish创建成功。
然后我们进入AndroidManifest.xml文件, 可以把intent-fliter标签放到我们新创建的Activity里面, 重新Run as后他运行就是新创建的页面了
总结: 当我们打开app时, Launcher进程去加载AndroidManifest.xml文件, 首先判断你的sdk版本, 然后看intent-fliter的标签放的是哪个Activity所在的区域, 从而去执行这个页面里面的onCreate函数