安卓

  • 一、安卓工程构建及第一个安卓程序运行
  • 二、安卓工程结构介绍
  • 三、安卓app的启动过程简述

一、安卓工程构建及第一个安卓程序运行

使用的软件 - 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. 首先, 这是整个工程

2. src是用来存放java代码的, 里面有包, 有文件

3. gen是存放一些自动生成的文件, 在这里我们关心的是R.java的文件, 这里存放的是程序页面, 按键, 文本的ID, 是程序自己生成, 不用用户去修改

这里存放的ID用来干什么, 我们后期应用开发中再进行讲解

4. Android 4.4和Android Private存放的是安卓开发的一些库, 供开发者调用

5. assets存放一些资源, 配置文件, 图片

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布局文件

三、安卓app的启动过程简述

安卓系统的界面是一个程序, 它就是Launcher进程。它会不断检测用户的触摸落在哪个app上, 如果你触摸的地方是个空白的地方, 它不做处理, 如果你滑动, 它就给你滑动, 这就是Launcher进程正在做的事情。当用户触摸到app的时候, 它实际上会通过这个bind驱动去通知底层的一些服务框架, 比如system server, system server会去启动app的进程, app进程有一个application thread, 有一个activity thread, 然后再去启动activity, 这是一个非常复杂的流程。(但这并不是我们目前需要知道的)

在这个阶段, 我们需要知道的是Launcher进程检测到用户触摸到app时, 这个工程里面最先加载的应该是AndroidManifest.xml, 首先它会判断你的sdk版本, 也就是你安装的目标机器是否承载得了这个安卓app, 有时候你承载不了装都装不上, 有时候装上了却不能运行。再来就是获取你需要的一些权限

例如我们现在给我们第一个安卓程序加一个网络权限

  1. 打开我们AndroidManifest.xml文件, 点击下面的Permissions
  2. 点击Add, 选择Uses Permission, 点击OK
  3. 点击Name栏开始选择, 选到android.permission.INTERNET项
  4. 点击后, 直接Ctrl+s保存
  5. 回到AndroidManifest.xml框, 我们就会看到它已经帮我们加好了权限指令

当你有多个界面的时候, 该启动哪一个呢? 大家都是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函数

新手安卓开发详细教程相关推荐

  1. 华为云IOT Android应用开发详细教程

    华为云IOT Android应用开发详细教程 (Android Studio开发) 第〇章    简介       大家好,上一期发布的教程叫大家如何利用华为云物联网平台提供的官方Java Demo去 ...

  2. 【ZT】MTK X20编译环境搭建 烧写安卓固件详细教程

    http://jingyan.eeboard.com/article/75888 MTK X20编译环境搭建 MTK X20编译环境搭建 作者: lgkgkfg 上传时间为: 2017-04-17 1 ...

  3. NC65【新】功能快速开发详细教程(yyds神)

    Hello大家好,我是信息课的IT施sir,我是java开发工程师小施. 下面由我出具一份NC65版本最新的新功能快速开发详细教程文档. 一.准备条件: 有一个UAP STUDIO集成开发平台,PL/ ...

  4. 安卓开发入门教程-UI控件_EditText

    什么是EditText EditText是用于进行文本输入的UI控件. 基础样例 1.普通输入 效果图 代码 <EditTextandroid:layout_width="wrap_c ...

  5. android 开发桌面应用程序,安卓开发基础教程-Android多界面应用程序开发

    开篇 本文阅读需10分钟,简单易上手,属于安卓开发教程的基础部分. 建议精读,深刻理解大意.多做实践.多写代码. 本文章由做全栈攻城狮原创首发. 同名公众号已开启,官网www.8z5.net. 本套教 ...

  6. 安卓开发入门教程-安装开发工具(Android Studio)

    本文简介 搭建Android Studio安卓开发环境. 目标用户 安卓初学者 操作步骤 一.下载Android Studio 下载迅雷加速下载(网速快的,直接略过本步骤).预计耗时:1分钟 在浏览器 ...

  7. 安卓开发 中文教程(14):新手福音——动作栏(Action Bar)

    动作栏(Action Bar) 在安卓3.0以后,动作栏(Action Bar)这个组件使安卓系统的布局变得非常轻松.它一般位于屏幕的顶部,提供了以下几点主要的功能:783f淮安掼蛋网下载 以图标形式 ...

  8. 新手C语言开发详细教程

    1. 下载资源包(编写软件是NotePad++, 编译工具是gcc) 代码编写软件网址:https://download.csdn.net/download/m0_52983689/87128595 ...

  9. mtk 手机 linux,【ZT】MTK X20编译环境搭建 烧写安卓固件详细教程

    拿到Mediatek X20开发板上网找了一下还没看到一个详细的固件烧写教程,即使是诚迈科技和96boards上也没有详细烧写教程,笔者研究了一下,现在将Mediatek X20开发板烧写固件的详细方 ...

  10. Win11运行安卓超详细教程!芜湖起飞!

    一.前提 Windows 11 版本号为 Build 22000.xxx 或更高版本. 您的电脑硬件 BIOS/UEFI 支持虚拟化功能. 二.支持 本教程适用于 Windows 11 正式版和预览版 ...

最新文章

  1. 傻瓜式动画制作软件_一个傻瓜版的动画制作软件——万彩动画大师
  2. 如何实现手机自动适应网页
  3. java.net.ServerSocket 解析
  4. boost::mp11::mp_none_of相关用法的测试程序
  5. 数据库SQL基础select语法
  6. chisel快速入门(一)
  7. 如何在指定的内容中找出指定字符串的个数
  8. UAC绕过思路(未完)
  9. struts转换器详解
  10. nsis使用URLDownloadToFile下载文件
  11. BAT大牛分享如何在最短的时间升职为阿里Java架构师
  12. 五万字 | Flink知识体系保姆级总结
  13. Ubuntu 的 openssl 安全问题提醒 USN-2192-1
  14. java.lang.IllegalStateException: Already resumed, but proposed with update xxxx
  15. shiro:principal为空问题
  16. 什么是RPA? Robotic Process Automation
  17. 哲学家就餐问题python解决_关于哲学家就餐问题的分析代码.
  18. python基础·入门笔记1(变量、数据类型、类型转换)
  19. 2019金九银十前端面经总结,java面试问题大全及答案大全word
  20. 在内核目录中编译驱动与Kconfig

热门文章

  1. Python解析器安装后测试打开微软商店
  2. css滤镜、混合模式、hls颜色值
  3. 图像处理在医学方面的应用
  4. 打造高可用iOS进度条
  5. 八爪鱼采集ajax表格,设置八爪鱼采集器ajax延时采集分页列表的方法
  6. 《日光之下无新事》畅游九州欢心娱乐
  7. 【2023年中国法定节假日的订阅链接】
  8. Linux下Linpack测试GPU和CPU性能
  9. python 高级函数补充
  10. 力扣438. 找到字符串中所有字母异位词 C++ (滑动窗口 + 数组)