由于项目要求參与无线端开发,本着技多不压身的指导精神,决定依旧从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五天乐(第一天)开发环境的部署,开发流程与调试的更多相关文章

  1. Spring Boot入门系列(十五)Spring Boot 开发环境热部署

    在实际的项目开发过中,当我们修改了某个java类文件时,需要手动重新编译.然后重新启动程序的,整个过程比较麻烦,特别是项目启动慢的时候,更是影响开发效率.其实Spring Boot的项目碰到这种情况, ...

  2. 突破瓶颈,对比学习:Eclipse开发环境与VS开发环境的调试对比

    曾经看了不少Java和Android的相关知识,不过光看不练易失忆,所以,还是写点文字,除了加强下记忆,也证明我曾经学过~~~ 突破瓶颈,对比学习: 学习一门语言,开发环境很重,对于VS的方形线条开发 ...

  3. windows/Linux下设置ASP.Net Core开发环境并部署应用

    10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...

  4. django开发环境搭建(参考流程)

    django开发环境搭建(参考流程) 2013-08-08 01:09:06 分类: LINUX 原文地址:django开发环境搭建(参考流程) 作者:bailiangcn 对于一个初学者,在实际的开 ...

  5. Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  6. Laravel本地环境搭建:Homestead开发环境的部署

    Laravel框架在php开发过程是不断进行优化的,当然也包括了本地环境的开发,下面我们就来具体看看laravel框架中的Homestead 开发环境的部署内容. 首先白以下几个概念 VirtualB ...

  7. 在Android平台下搭建PhoneGap开发环境--用HTML5开发游戏

    一.在Android平台下搭建PhoneGap开发环境具体怎么搭建我这里就不详细说了,如有需要我后面再讲 . PhoneGap 官方地址有详细说明:http://www.phonegap.com. 在 ...

  8. 【原创】windows下搭建vue开发环境+IIS部署

    [原创]win10下搭建vue开发环境  如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图:     详细的安 ...

  9. windows下搭建vue开发环境+IIS部署

    原创]win10下搭建vue开发环境  https://www.cnblogs.com/ixxonline/p/6007885.html 特别说明:下面任何命令都是在windows的命令行工具下进行输 ...

随机推荐

  1. android:scrollbarStyle属性及滚动条和分割线覆盖问题

    android:scrollbarStyle可以定义滚动条的样式和位置,可选值有insideOverlay.insideInset.outsideOverlay.outsideInset四种. 其中i ...

  2. [AGC019E]Shuffle and Swap

    [AGC019E]Shuffle and Swap 题目大意: 给出两个长度为\(n(n\le10000)\)的\(01\)串\(A_{1\sim n}\)和\(B_{1\sim n}\).两个串均有 ...

  3. Perl正则表达式

    perl正则表达式就是通过一串特别设计的字符串,可以按照我们的需求匹配.替换.转化目标字符串.本文主要是对一些常用的正则表达以及语法的总结以及举例,供广大喜爱Perl的同学交流学习. 操作符: =~ ...

  4. 21点游戏java实现

    21点的基本知识 21点是世界上比较流行的扑克游戏项目 除掉大小王的一副扑克牌,共计52张牌 21点不区分花色,其中A----10均代表扑克牌本身的点数J Q K代表10点 区分庄家和闲家,其中闲家可 ...

  5. NHibernate之一级缓存(第十篇)

    NHibernate的一级缓存,名词好像很牛B,很难.实际上就是ISession缓存.存储在ISession的运行周期内.而二级缓存则存储在ISessionFactory内. 一.ISession一级 ...

  6. Inno Setup入门(二十)——Inno Setup类参考(6)

    http://379910987.blog.163.com/blog/static/3352379720112515819485/ 存储框 存储框也是典型的窗口可视化组件,同编辑框类似,可以输入.显示 ...

  7. ARM的存储器映射与存储器重映射

    转:http://www.360doc.com/content/12/1006/00/1299815_239693009.shtml arm 处理器本身所产生的地址为虚拟地址,每一个arm芯片内都有存 ...

  8. TStringList的DelimitedText的空格问题

    TStringList的DelimitedText的空格问题 如果DelimitedText的字符串中有空格,TStringList遇到空格会进行自动换行,而这显然不是我们想要的结果.经测试发现D7~ ...

  9. 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为我们提供了在线编译工具,可 ...

  10. jQuery中,子页面与父页面之间的调用方法

    在jQuery中, 子页面查找父页面的元素 parent.$("#元素Id") 父页面调用子页面的元素 $("#子页面iframe的Id").contents( ...