从图上可以看出Android Studio已经帮我们将工程组织的很好了。
界面介绍
如上图所示,我将界面分为5个区域做详细的讲解:
区域1介绍
这个区域是运行和调试相关的操作。
1、编译2中显示的模块
2、当前项目的模块列表
3、运行2中显示的模块
4、调试2中显示的模块
5、测试2中显示的模块代码覆盖率
6、调试安卓运行的进程
7、重新运行2中显示的模块
8、停止运行2中显示的模块
区域2介绍
这个区域主要是和Android设备和虚拟机相关的操作。
1、虚拟设备管理。
2、同步工程的Gradle文件,一般在Gradle配置被修改的时候需要同步一下。
3 、项目结构,一些项目相关的属性配置。
4、Android SDK管理
5、Genymontion模拟器(需要装Genymontion插件,安装篇[模拟器安装]部分)
区域3介绍
这个区域主要是工程文件资源等相关的操作。
1、展示项目中文件的组织方式,默认是以Android方式展示的,可选择“Project、Packages、Scratches、ProjectFiles、Problems…”等展示方式。平时用的最多的就Android和Project两种。
2、定位当前打开文件在工程目录中的位置。
3、关闭工程目录中所有的展开项。
4、额外的一些系统配置,点开后是一个弹出菜单:
Autoscroll to Source 和 Autoscroll from Source两个勾选起来后,Android Studio会自动定位当前编辑文件在工程中的位置,用起来会很爽。其他功能大家可以自己摸索摸索。
区域4介绍
这个区域主要是用来编写代码和设计布局。
1、已打开的文件的Tab页。(在Tab页上按下Ctrl键 + 点击鼠标会出现一个弹出菜单会有惊喜哦!)
2、UI布局预览区域。
3、布局编辑模式切换,对于一些老鸟来说更喜欢通过Text来编辑布局,新手可以试试Design编辑布局,编辑后再切换到Text模式,对于学习Android布局设计很有帮助。
区域5介绍
这个区域大部分是用来查看一些输出信息的。
1、终端 - 喜欢命令行操作的伙伴不用额外启动终端了。
2、监控 - 可以查看应用的一些输出信息。
3、信息 - 工程编译的一些输出信息。
4、运行 - 应用运行后的一些相关信息。
5、TODO - 标有TOTO注释的列表。
6、事件 - 一些事件日志。
7、Gradle控制台,通过这个可以了解Gradle构建应用的时候一些输出信息。
Android Studio目录结构
1、Gradle编译系统,版本由wrapper指定
2、Android Studio IDE所需要的文件
3、应用相关文件的存放目录
4、编译后产生的相关文件
5、存放相关依赖库
6、代码存放目录
7、资源文件存放目录(包括:布局、图像、样式等等)
8、应用程序的基本信息清单,描述哪些个组件是存在的
9、git版本管理忽略文件,标记出哪些文件不用进入git库中
10、Android Studio的工程文件
11、模块的gradle相关配置
12、代码混淆规则配置
13、工程的gradle相关配置
14、gradle相关的全局属性设置
15、本地属性设置(key设置,android sdk位置等属性)
应用开发调试
如上图1所示在需要调试的行号处点击设置断点,然后点击2所示的Debug按钮(或直接按下Shift+F9快捷键)开始调试。
如上图所示Android Studio下方出现了调试视图。
1、当前程序停留的代码行
2、调试相关的一些按钮
3、程序调用栈区,该区域显示了程序执行到断点处所调用过的所有方法,越下面的越早被调用。
4、局部变量观察区
5、用户自定义变量观察区
1、Step Over(F8) - 程序向下执行一行,如果当前行有方法调用,这个方法执行完毕返回,然后到下一行。
2、Step Into(F7) - 程序向下执行一行,如果当前行有用户自定义方法(非官方类库方法)调用,则进入该方法。
3、Force Step Into(Alt+Shift+F7) - 程序向下执行一行,如果当前行有方法调用,则进入该方法。
4、Step Out(Shift+F8) - 如果在调试的时候你进入了一个方法,并觉得该方法没有问题,你就可以使用Step Out跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
5、Drop Frame - 点击该按钮后,你将返回到当前方法的调用处重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
6、Run to Cursor(Alt+F9) - 一直运行到光标所在的位置。
7、Resume Program(F9) - 一直运行程序直到碰到下一个断点。
8、View Backpoints(Ctrl + Shift +F8) - 查看你设置过的所有断点并可以设置断点的一些属性
9、Mute Backpoints - 选中后所有的断点别设置成无效状态。再次点击可以重新设置所有断点有效。
在点击了View Backpoints按钮后,会出现一个断点属性窗口,可以对断点进行一些更高级的设置。
1、列出了所有程序中设置的断点
2、可以输入条件,在条件成立后断点才起作用(例如:在输入框中输入 i == 8),这种带条件断点在实际开发过程中非常有用。也可以通过右键点击断点来设置条件断点,如下图:
好了,到这里调试相关的功能都介绍完了。
应用打包签名
基础
一个 Android Studio 项目中,会存在多个 .gradle 文件。其中, project 目录下存在一个 build.gradle 文件和每一个 module 会存在一个 build.gradle 文件。
工程中的build.gradle
buildscript {
repositories {
jcenter() // 声明使用 maven 仓库
}
dependencies {
// 依赖android提供的2.1.0-alpha5的gradle build
classpath ‘com.android.tools.build:gradle:2.1.0-alpha5’
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
作者2013年从java开发,转做Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。
参与过不少面试,也当面试官 面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!
我整理了一份阿里P7级别的最系统的Android开发主流技术,特别适合有3-5年以上经验的小伙伴深入学习提升。
主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你想深入系统学习Android开发,成为一名合格的高级工程师,可以收藏一下这些Android进阶技术选型
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言
高级UI与自定义view;
自定义view,Android开发的基本功。
性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。
NDK开发;
未来的方向,高薪必会。
前沿技术;
组件化,热升级,热修复,框架设计
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,CodeChina上可见;
当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
不出半年,你就能看出变化!
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算