Android五天乐(第一天)开发环境的部署,开发流程与调试
由于项目要求參与无线端开发,本着技多不压身的指导精神,决定依旧从web转攻client!
由于之前自己玩过两个月android(实际上仅仅是做了两个有失水准的demo级app),本来以为这次再来学习将游刃有余。 没想到主管仅仅给了足足一,个,礼,拜,的学习时间,第二周直接參与业务! 好吧,android五天乐begin!
1部署Android开发环境
1 java环境
2 下载 Android Studio
3 配置 andorid环境变量
开发android应用能够选择 使用AVD(android virtual device)。只是依照之前的使用体验这个东西真的很卡,所以准备好牺牲自己的手机作为调试设备了。
2Android项目文件夹结构
android项目的文件夹结构例如以下,这个是新建andorid项目后自己主动生成的结构,仅包含一些必须的文件
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTFRpYW5jaGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
1 activity_main 文件是默认的 首页布局文件,能够通过对UI控件进行拖拽来直接生成xml布局文件。也能够直接编写xml代码来生成控件。
2 values文件
改目录下存放的strings.xml为字符串资源,这里定义的字符串能够再布局文件里引用。例如以下所看到的,假设在xml中定义android:text="@string/question_text" ,则text的显示值为Hello world! . 在这里能够对
字符串型变量进行统一的管理。
3 MainActivity
上面定义的组件能够再MainActivity中引用。 在布局文件里通过声明 Android:id(@+id/myid)的方式将组件的id加入到R文件里,有了id之后能够通过findViewById方法进行引用,例如以下所看到的:
在MainActivity中声明的Button对象 mTrueButton。通过findViewById方法与布局中的button“绑定”在一起,进而能够通过设置监听器来捕捉button的事件,并作出回应。
3 开发与打包
通过run选项首先选择执行androidproject的设备。
假设没有可用设备能够选择新建一个虚拟设备(AVD)。
设备开启后打开锁屏就进入了project主页。
假设希望将应用打包公布,则须要将project打成签名的apk文件,依据操作一步步完毕就可以
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTFRpYW5jaGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTFRpYW5jaGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
4 Demo
自己定义类: TrueFalse, 其包括一个字符串变量。
在MainActivity中建立TrueFalse的数组对象(Model), 通过定义button和监听器来定制响应时间(control),并通过绑定的控件(view)来监听并展示。这就构成了一个简单的MVC框架。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTFRpYW5jaGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
这个demo的功能非常easy,通过点击NEXTbutton来触发OnClick事件。在事件的监听器中依据变量mCurrentIndex来通过获取不同的TrueFalse对象来改变text的值。 这里的MVC框架例如以下:
MVC模式的优点有:
1 封装好的model使代码更易于理解,在开发Android应用的过程中能够依照一个个类去思考设计问题,而不是变量或方法
2 对于View层的改动将不依赖于Model中的业务逻辑。 Model层与View层是不会直接发生联系的,也就是说layout部分和java代码部分全然能够单独开发。两者都开发完毕后仅仅须要在control层建立
联系就能够了 。类似于展示分离。
3 有利于代码复用。
5 Android项目debug
使用Android Studio来开发Android项目能够通过三种方式来修正project中的异常问题
1 记录栈跟踪日志
简而言之,就是在方法中加入日志输出语句。借助栈跟踪日志。能够非常easy看出方法在哪些地方被调用。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTFRpYW5jaGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
2 另外一种方法就是我们平时使用eclipse调试java代码的方法:通过设置断点来分步debug 。
Android Studio的快捷键跟eclipse 有一些差异:
F8 运行下一行,相当于eclipse中F6
F7进入方法。相当于eclipseF5
shift+F8 跳出循环或通到下一个断点。相当于eclipse的F7和F8 。
3 第三种方法是使用一种Android应用特有的检查代码工具-》Lint ,其是一种Android代码静态分析器, 其无需代码执行就能够检查代码错误。
调用方式为在Android Studio中右键项目,选择Analyze中的inspect code。然后选择检查的范围。
检查结果例如以下图所看到的。Lint能够找出一些编译器无法发现的问题。如使用错误的类型ID导致的类型转换错误等。例如以下图所看到的。 程序代码的静态错误会与错误类型与介绍一起罗列出来:
Android五天乐(第一天)开发环境的部署,开发流程与调试的更多相关文章
- Spring Boot入门系列(十五)Spring Boot 开发环境热部署
在实际的项目开发过中,当我们修改了某个java类文件时,需要手动重新编译.然后重新启动程序的,整个过程比较麻烦,特别是项目启动慢的时候,更是影响开发效率.其实Spring Boot的项目碰到这种情况, ...
- 突破瓶颈,对比学习:Eclipse开发环境与VS开发环境的调试对比
曾经看了不少Java和Android的相关知识,不过光看不练易失忆,所以,还是写点文字,除了加强下记忆,也证明我曾经学过~~~ 突破瓶颈,对比学习: 学习一门语言,开发环境很重,对于VS的方形线条开发 ...
- windows/Linux下设置ASP.Net Core开发环境并部署应用
10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...
- django开发环境搭建(参考流程)
django开发环境搭建(参考流程) 2013-08-08 01:09:06 分类: LINUX 原文地址:django开发环境搭建(参考流程) 作者:bailiangcn 对于一个初学者,在实际的开 ...
- Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Laravel本地环境搭建:Homestead开发环境的部署
Laravel框架在php开发过程是不断进行优化的,当然也包括了本地环境的开发,下面我们就来具体看看laravel框架中的Homestead 开发环境的部署内容. 首先白以下几个概念 VirtualB ...
- 在Android平台下搭建PhoneGap开发环境--用HTML5开发游戏
一.在Android平台下搭建PhoneGap开发环境具体怎么搭建我这里就不详细说了,如有需要我后面再讲 . PhoneGap 官方地址有详细说明:http://www.phonegap.com. 在 ...
- 【原创】windows下搭建vue开发环境+IIS部署
[原创]win10下搭建vue开发环境 如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安 ...
- windows下搭建vue开发环境+IIS部署
原创]win10下搭建vue开发环境 https://www.cnblogs.com/ixxonline/p/6007885.html 特别说明:下面任何命令都是在windows的命令行工具下进行输 ...
随机推荐
- android:scrollbarStyle属性及滚动条和分割线覆盖问题
android:scrollbarStyle可以定义滚动条的样式和位置,可选值有insideOverlay.insideInset.outsideOverlay.outsideInset四种. 其中i ...
- [AGC019E]Shuffle and Swap
[AGC019E]Shuffle and Swap 题目大意: 给出两个长度为\(n(n\le10000)\)的\(01\)串\(A_{1\sim n}\)和\(B_{1\sim n}\).两个串均有 ...
- Perl正则表达式
perl正则表达式就是通过一串特别设计的字符串,可以按照我们的需求匹配.替换.转化目标字符串.本文主要是对一些常用的正则表达以及语法的总结以及举例,供广大喜爱Perl的同学交流学习. 操作符: =~ ...
- 21点游戏java实现
21点的基本知识 21点是世界上比较流行的扑克游戏项目 除掉大小王的一副扑克牌,共计52张牌 21点不区分花色,其中A----10均代表扑克牌本身的点数J Q K代表10点 区分庄家和闲家,其中闲家可 ...
- NHibernate之一级缓存(第十篇)
NHibernate的一级缓存,名词好像很牛B,很难.实际上就是ISession缓存.存储在ISession的运行周期内.而二级缓存则存储在ISessionFactory内. 一.ISession一级 ...
- Inno Setup入门(二十)——Inno Setup类参考(6)
http://379910987.blog.163.com/blog/static/3352379720112515819485/ 存储框 存储框也是典型的窗口可视化组件,同编辑框类似,可以输入.显示 ...
- ARM的存储器映射与存储器重映射
转:http://www.360doc.com/content/12/1006/00/1299815_239693009.shtml arm 处理器本身所产生的地址为虚拟地址,每一个arm芯片内都有存 ...
- TStringList的DelimitedText的空格问题
TStringList的DelimitedText的空格问题 如果DelimitedText的字符串中有空格,TStringList遇到空格会进行自动换行,而这显然不是我们想要的结果.经测试发现D7~ ...
- Mac系统使用VS Code编译Bootstrap 4
环境: macOS 10.13.6 node.js 8.11.3 sass 1.10.3 bootstrap 4.1.3 vs code 1.25.1 Bootstrap3为我们提供了在线编译工具,可 ...
- jQuery中,子页面与父页面之间的调用方法
在jQuery中, 子页面查找父页面的元素 parent.$("#元素Id") 父页面调用子页面的元素 $("#子页面iframe的Id").contents( ...