站在.NET的角度学安卓的草民笔记1
Java -> .NET
安卓 -> winform/WPF
类继承Activity -> 类继承 Form
①安卓的

如果android中你有2个Activity,可以从一个Activity跳到另一个Activity怎么搞
Intent t=new Intent(MainActivity.this,OtherActivity.class);
startActivity(t);
使用Intent,专业术语叫 意图。
后面 MainActivity是第一个窗口,后面一个是即将要打开的
Intent t=new Intent(A.this,B.class)
然后startActivity(t);
②Winform

要被打开的Form,实例化它,然后Show就打开了
FormA a=new FormA();
a.Show();
所以android很像.net的编程
Android的结构

在项目的 src文件夹中,就是java的源代码的地方,gen文件夹是生成编译后的代码的地方
.net写代码的时候是 .cs文件,java中是 .java文件
编译后是.dll文件,java中是 .class文件

我们看到了,src下面有个 com.android.helloword的类似文件夹的地方,下面放了源代码
这个com.android.helloworld , 点的写法,在可视化时候,是3层文件夹,com文件夹下的android文件下的helloworld的文件夹下

这个目录在你新建类可以指定,在1处指定文件目录结构。
2处可以指定父类,继承他,java中使用extends,子类使用父类东西使用super,自己的使用this
.net中使用 : 即可,子类使用父类东西使用base,自己的用this

3处指定实现接口,java使用implements,.net还是 :
java的继承后又实现接口

4处指定 生成类时候,默认带不带构造函数,不勾选也没关系,在类中,你也可以快速生成构造函数
你可以右击你的代码的地方,选择Source,然后出现一个菜单,你也可以通过Alt+shift+s快速打开这个工具菜单,上面也有生成属性的地方

关于java的属性,看下面代码

在这里我只写了2个private .. ..的东东,然后使用Alt+shift+s,生成属性,生成带参数的构造函数的,所以java写代码还算比较快的,只是没有.net的敲写单词实时提示代码而已。但是在java中你使用Alt+?就可以提示代码了,但是你的给IDE的几个单词大小写要注意,不要匹配不上。
在.net中写了一个代码,没有引入命名空间时候使用Shift+alt+F10可以快速导入命名空间很方便,.net使用using可以手动导入
在java中写了一个代码,可以使用Ctrl+shift+o就可以达到同样的效果,java使用import手动导入
还有个常用快捷键是,格式化代码,代码不整齐时候,.net使用Ctrl+E+D,java使用Ctrl+Shift+F就可以了
.net注释用Ctrl+E+C,取消注释Ctrl+E+U
java注释和取消注释使用Ctrl+\
大致可能我目前知道的一些常用快捷键就这么多了。
那关于你写好程序怎么测试调试呢
1. 我目前使用真实的手机进行测试的,效果挺快的,右击你的项目,打开Run Configurations

2

双击Android Application可以新建一个配置文件,然后你选择你的项目,然后单击target

第一个选项就是真机测试的选项,当时写完没有找到我的手机,但是我电脑装上豌豆荚软件时候,貌似豌豆荚给我电脑装了什么adb的什么驱动东东,然后我的手机就可以和IDE通讯了,就可以测试了,你的手机要打开开发者选项

每次当我写完代码,点击运行,过会手机就会打开这个程序,看到的是最新的效果,如果没有安装,他会先安装

关于java和.net都有 log4java,log4net等日志工具,在安卓中自带了调试的类和可视化工具(Logcat)


使用Log. 什么就可以记录日志,并且有日志的严重级别,这里的 i 是info级别的简写,前卖那个TAG我定义的一个常量,在上面定义了,这个好比一个日志的标签,这里TAG等于Main
所以我可以在Logcat中定义一个日志过滤器


所以我的Logcat这里显示的都是Main标签的 日志文字

关于日志调试的入门就到这里了,欢迎你们研究去
下面手动建立一个Activity,让你结合.NET的基础知识,知道安卓的文件是怎么依赖关联上的
在这之前要讲一下 Activity的生命周期
7个方法 onCreate,onStart,onRestart,onResume,onStop,onPause,onDestroy
在每个类中,你都可以重写Activity父类的这几个方法,默认新建一个继承Activity的类都含有一个onCreate方法,等同于winform的 XXX_Load方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

这里super.onCreate下面 写一行代码可以绑定 这个窗口的界面 ,比如我们绑定 activity_main这个android xml布局文件
setContentView(R.layout.activity_main);
这样界面和后面的逻辑就绑定了,打开activity_main.xml文件,一个是界面模式,一个是xml文件模式
界面模式,是不是很像winform的可视化模式
接下来我们看下android背后的后台代码
真的很像WPF背后的xaml语言,所以把android对比.net的wpf还是很形象的 有了 后台类,有了layout文件中的布局xml文件,你还需要在androidmanifest文件中加入 这个新增的activity


这个名字跟后台的类名是一样的,不是跟布局文件名字一样的,使用 点+加上后台类名,组成一个activity中的android配置名字
这个思路跟win8应用开发也很像,win8应用开发时候也有配置清单文件,可以设置图标,宣传的图片,其他系统权限配置等,这个文件的作用你也可以理解为.net网站中的global文件,好了,你知道有这个文件的入门作用就行了。
讲了这么多,估计有手中应该有一部安卓手机吧,简单看下安卓的几个生命周期 你可以新建一个项目,在默认的activity中 重写 父类的7个生命周期方法,每个生命周期中使用Log.i 打印方法执行的标记。接下来操作android程序,我们看下日志
① 安装完了程序,点击图标启动
总结: OnCreate - OnStart OnResume ② 按了 小房子键,回到桌面总结: onPause onStop ③ 按住小房子键,显示历史打开程序列表,然后选中刚才的程序,这种方式打开程序
总结: OnRestart - OnStart OnResume
④手机长期不用,默认黑屏,挂机状态,跟②情况一样
onPause onStop ⑤黑屏后打开,跟③情况一样 OnRestart - OnStart OnResume
⑥点了返回键,退出程序

onPause-onStop-onDestroy
好了,关于android的第一印象大致写到这里,如果有超过10名 .NET同胞连android的ide搭建还有问题,我可以单独在写个android的4.x开发IDE搭建笔记
站在.NET的角度学安卓的草民笔记1的更多相关文章
- [从产品角度学EXCEL 00]-为什么要关注EXCEL的本质
前言 Hello 大家好,我是尾巴,从今天开始,在这里连载<从产品角度学EXCEL>的系列文章.本文不接受无授权转载,如需转载,请先联系我,非常感谢. 与世面上的大部分EXCEL教程不同的 ...
- 投资人的能量往往大多远远不仅于此,他能站在不同的角度和高度看问题(要早点拿投资,要舍得让出股份)——最好不要让 Leader 一边做技术、一边做管理,人的能力是有限的,精力也是有限的
摘要:在创业三年时间里作为联合创始人,虽然拿着大家均等的股份,我始终是没有什么话语权的,但是,这也给了我从旁观者的角度看清整个局面的机会.创业公司的成败绝大程度取决于技术大牛和公司 Leader, ...
- [从产品角度学excel 04]-单元格的“衣服”
忘记发这里了..补发一下 这是<从产品角度学EXCEL>系列——单元格篇. 前言请看: 0 为什么要关注EXCEL的本质 1 excel是怎样运作的 2 EXCEL里的树形结构 3 单元格 ...
- [从产品角度学EXCEL 03]-单元格的秘密
这是<从产品角度学EXCEL>系列——单元格的秘密. 前言请看: 0 为什么要关注EXCEL的本质 1 EXCEL是怎样运作的 2 EXCEL里的树形结构 或者你可以去微信公众号@尾巴说数 ...
- [从产品角度学EXCEL 02]-EXCEL里的树形结构
这是<从产品角度学EXCEL>系列第三篇. 前言请看: 0 为什么要关注EXCEL的本质 1 excel是怎样运作的 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布 ...
- [从产品角度学EXCEL 01]-EXCEL是怎样运作的
这是<从产品角度学EXCEL>系列第二篇. 前言请看:从产品角度学EXCEL-系列0-为什么要关注EXCEL的本质 本文不接受无授权转载,如需转载,请先联系我,非常感谢. 1.EXCEL是 ...
- 如何站在使用者的角度来设计SDK-微信公众号开发SDK(消息处理)设计之抛砖引玉
0.SDK之必备的基本素质 在项目中免不了要用到各种各样的第三方的sdk,在我现在的工作中就在公司内部积累了各种各样的的公共库(基于.net的,基于silverlight的等等),托管到了内部的nug ...
- 站在Java的角度看LinkedList
站在Java的角度看,玩队列不就是玩对象引用对象嘛! public class LinkedList<E> implements List<E>, Deque<E> ...
- 安卓第九天笔记-Activity
安卓第九天笔记-Activity 1.创建Activity 一个界面对应一个activity 创建一个Activity 1.写一个JAVA类,继承Activity publicclass CalcA ...
随机推荐
- (C++)字符串分割
题目: 如何对C++中输入的字符串进行分割呢?如“I am a student”,去除空格后分割成为“I”,“am”, “a”, “student”四个单词 思路: 直接参考代码 代码: void s ...
- iOS编程(双语版) - 视图 - 手工代码(不使用向导)创建视图
如何创建一个空的项目,最早的时候XCode的项目想到中,还有Empty Application template这个选项,后来Apple把它 给去掉了. 我们创建一个单视图项目. 1) 删除main. ...
- 获取js连接参数js_args
获取js连接参数,如下以链接: <script src="js/jscript.js?skin=green" type="text/javascript" ...
- Go语言中使用SQLite数据库
Go语言中使用SQLite数据库 1.驱动 Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接口的 https://github.com/mattn/go-sqlite3 ...
- 变址values(, %edi, 4)和间址4(%edi)
<汇编语言程序设计>Richard Blum著:5.2.4 在内存和寄存器之间传送数据 使用变址的内存位置: 可以在一个命令中指定把多个值存放到内存中: values: .in ...
- nginx内置预定义变量
nginx的配置文件中可以使用的内置变量以美元符$开始,也有人叫全局变量.其中,部分预定义的变量的值是可以改变的. $arg_PARAMETER 这个变量值为:GET请求中变量名PARAMETER参数 ...
- H5移动端JS操作LocalStorage方法
LocalStorage和SessionStorage LocalStorage 是对Cookie的优化 没有时间限制的数据存储 在隐私模式下不可读取 大小限制在500万字符左右,各个浏览器不一致 在 ...
- golang 面试
1) 基础语言描述理解考察https://www.tutorialspoint.com/go/go_interview_questions.htm这里有一栏.全面的问答,并且非常基础也包括golang ...
- 【DB2】设置表不记录日志,但是回滚导致表不可用报错:DB2 SQL Error: SQLCODE=-1477, SQLSTATE=55019, SQLERRMC=LEN.TMP;5;3, DRIVER=3.57.82
今天在生产发现个问题,很多表报错:SQLCODE=-1477 后来线下模拟出这种场景 出现这个问题,此时对表做reorg.runstats都是无效的. 那么怎么来解决这个问题呢? 只能重建表解决问题
- python必须要安装的库
1.requests 2.lxml 3.Django 4.BeautifulSoup 5.PyMySQL-0.7.0 (适用于python3) 6.图片处理PIL





总结: onPause onStop
③ 按住小房子键,显示历史打开程序列表,然后选中刚才的程序,这种方式打开程序