结束了一些事情,本以为可以好好玩一段时间,结果紧接着又来了Android实训,因为这个实训已经开了一段时间了,我中途加入已经不赶趟了,但出于兴趣,准备今天开始跟着老师的笔记的源码从头开始自己摸索着学一遍。

背景历史啥的先不写了,在菜鸟教程上看看Android专栏的前几章讲的挺详细的。

不过关于Android到底是个什么架构,有什么组件,这个体系我还没了解,先放着吧,先照着老师的学。实践中才能带来最好的理解。

本次实训所有的代码及材料地址(实训完成后再上传):

Day1  Java类的相关操作

我看第一天的笔记和代码是关于Java类的讲解,继承,封装,多态等操作。。不多说了,这里直接贴一下笔记一带而过好了。

一.基本操作

1.创建模拟器

可以在Windows系统中虚拟一台Android的手机。(如下步骤)

步骤:
1. 点击工具栏上的“Android Virtual Device Manager”图标
2. 在弹出的窗口中点击右上角的New按钮
3. 在弹出的窗口中配置模拟器相关参数后,点击完成
4. 在列表中可以看到已经配置好的模拟器,选中模拟器后,点击Start按钮启动模拟器
5. 弹出“Launch Options”窗口,确定参数后,点击“Launch”按钮
6. 会进度到启动过程,时间长度不一定,耐心等待。

因为本次使用的开发工具版本不是很新,所以可以使用其他的模拟器代替此版本的模拟器。
例如:夜神、海马玩、蓝叠

window->show toolbar->点击下面那个小手机,刚开始没有模拟器,点击New新建一个

大致选项如下

Device选择最低的分辨率!效率还高点。

然后选择选中,点击start启动就行了

效果如下

2.创建Android工程

File->New->Android Application Project

第一个名字自己随便起,后面两个自动生成了,第一个最小需要的SDK是API15,其他的默认就行,然后一路next就建成Android工程了。

3.将写好的Android程序(安装包apk)安装到手机当中

在工程中的bin下找到apk文件,发到你的手机上(QQ啥的发送都行),像正常软件打开点击安装就行了。

效果如下

二.笔记

C++、Java(Android)、Qt、Oracle等

3周 Android新闻客户端

大二

前期以语法基础为主 Java(面向对象编程)
中期以Android技术为主(前期语言的实践)
后期以项目为主(自主动手,以团队为单位)

【授课时间】
8:00 - 12:00
第一节 8:00 - 8:50
第二节 9:00 - 9:50
第三节 10::00 - 10:50
第四节 11:00 - 11:50

14:00 - 17:00
第五节 14:00 - 14:50
第六节 15:00 - 15:50
第七节 16:10 - 17:00

晚自习 19:00 - 20:00

【授课方式】
边讲边练,老师讲一个知识点,讲完后练一个知识点,尽量在课堂上解决所有问题。

【开发环境】
本次Java和Android都使用Eclipse。
优势是保持整个教学周期内开发环境不变。

有基础的同学可以使用其他的集成开发环境。

解压密码:11111111

环境支持的jdk版本最高为1.9
查看jdk版本:
Win+R -- 输入cmd,回车 --- 在窗口中输入 java -versio,回车

环境安装不要着急往下走
1.尽量使用默认路径,因为使用默认路径有问题之后老师可以第一时间定位
2.如果要使用自定义的路径,不要有任何中文!!!

adt-bundle-windows-x86_64-20140321
一定要解压到一个没有中文路径的文件夹下!!!!
解压后的整体不要分离!

进入到
adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\eclipse.exe

启动程序后,在弹出的窗口中选择要存储项目的路径(不要带中文)。

如同C语言,C语言需要使用.c文件来进行存储。
Java使用.java文件来存储代码。

【如何创建一个.java文件】
选中项目,点击鼠标右键,选择New--选择Class,需要在弹出的窗口中输入类名--点击Finish按钮。
注意大小写要与老师一致!!

文件创建完成后,会生成一段代码。

注意:
在后续的课程中,函数=方法。

【运行程序的方法(java)】
1. 在主方法所在的编辑窗口,鼠标右键,选择Run As.. --- Java Application
2. 选中要运行的代码文件,鼠标右键,选择Run As.. --- Java Application
3. 直接点击工具栏上的运行按钮

【面向过程和面向对象】
思考:怎么把大象装进冰箱?

面向过程思想:
1.(我)把冰箱门打开
2.(我)把大象装进去
3.(我)把冰箱门关上

面向对象思想:
1.将大象和冰箱拟人化
2.安排任务给大象和冰箱
3.大象和冰箱自己完成功能

面向过程编程的核心是怎么解决问题。
面向对象编程的核心是谁来解决问题。

【类和对象】
“万物皆对象”

类:类是一种抽象的概念,是一种标准。
对象:基于类的标准产生的实例,是实实在在存在的个体。

先类的定义,才会根据类的内容去“生产”对象。
严格地讲,不能将若干个对象称为类。

【类的内容】
主要包含两个部分
1. 属性:用来描述对象的数据元素,是一些数值。
        例如:身高、体重、年龄、价钱等。。。。
2. 方法:对属性数据进行操作的行为。
        例如:吃饭、学习、工作。。。。
        
【类的定义】
1. 以手机为例,来创建一个手机类。
   手机的属性:品牌、型号、重量
   手机的方法:听音乐、玩游戏、打电话
   
   (1)选中项目,右键---New---Class
   (2)在弹出的窗口中输入Name栏(注意大小写),点击Finish
   (3)在MobilePhone.java文件中写出手机类的属性和方法
   
2. 基于手机类,创建若干个手机对象。
    (1)选中项目,右键---New---Class
    (2)在弹出的窗口中输入Name栏(注意大小写),点击Finish
    (3)在Test.java·文件中写上主方法
    (4)在主方法中创建对象、
    (5)运行主方法所在的文件
    
【如何查看老师的课上代码】
1.导入Eclipse中
    将群里老师发的代码压缩包解压到本地磁盘,在Eclipse中,依次点击:
    File -- Open Projects From File System
    在新弹出的窗口中的Import Source中选择项目文件根目录,点击Finish。

2.使用文本编辑器(Notepad++)打开(可在notepad中对文件直接进行编辑修改
    找到要看的代码(位于项目根目录/src/java文件)
    选中要看的代码文件,右键,选择Edit With Notepad++
    
    
【信息的隐藏】
一个良好的类应该只开放部分外部需要的数据和功能,
其他的部分应该使用更加严格的权限加以修饰。

信息的隐藏实际上是对对象的一种保护措施,它可以使对象的属性和方法不被外部程序直接访问。

private 是最严格的权限
public  是最宽松的权限

【封装】
如果某个数据被隐藏了,那么外部又想调用它,需要使用封装来公开一个访问的方式。

封装可以:
隐藏一个类的实现细节,只公开给外部部门的内容。
防止对封装数据的未授权的访问。
便于修改,增加代码的可维护性。

【面向对象编程的三大特征】
封装、继承、多态

【Java源文件的基本结构】
package    包
import    导包
class     类

包名通常使用域名反写+模块名称+子模块名称+...
包名必须使用全英文小写,用.分割

包的本质实际上就是文件夹的层级划分。

【岗位划分】
2B(乙方)
2C(消费类电子)

跑客户
(销售:谁是客户,客户的需求是什么?不懂开发技术)
(售前:技术型销售,方案演示,技术答疑,投标,稍微懂开发技术)
(产品经理:转换客户需求为产品原型,不懂开发技术)
(项目经理:把控一个项目的流程,往往是具备了一定的开发经验后转型为管理者,良好的人际沟通能力)
(研发:需要扎实的专业技术,是除了管理类岗位门槛最高的)
(测试:提bug的,需要经常跟研发沟通,对技术要求较少,女性多)
(运维:对服务器进行维护,需要服务器和数据库相关的技术)
(实施:对设备进行安装调试,不需要任何的开发技术)
(售后:产品使用过程中出现问题,负责解决问题)

市场调研
(产品经理:市场需求、竞品分析→产品原型)
(项目经理:把控一个项目的流程,往往是具备了一定的开发经验后转型为管理者,良好的人际沟通能力)
(研发:需要扎实的专业技术,是除了管理类岗位门槛最高的)
(测试:提bug的,需要经常跟研发沟通,对技术要求较少,女性多)
(运维:对服务器进行维护,需要服务器和数据库相关的技术)
(售后:产品使用过程中出现问题,负责解决问题)

【快捷键--基于Eclipse】
单行注释
Ctrl + Shift + C
Ctrl + /

自动补全
Alt + /

代码格式化
Source --- Format

搜索
Ctrl + F

【标识符】
标识符用作给变量、类、方法命名。
1.注意大小写
2.避免与Java中已经定义的名称重名(关键字)
3.见名知意
4.避免特殊符号,和特殊符号、数字开头。

【数据类型】
见群图

三.作业

定义一个Student类,位于包com.sd.ta下,
拥有属性姓名、年龄和性别(自己决定使用什么类型)。
对上面的属性进行隐藏和封装。

定义另一个Test类,位于包com.sd.jn下,
在Test类中有程序的主方法,主方法中创建Student类对象并测试其所有功能。

Day2 接口

关于接口的代码,略,在最开头的资料里都有。

一.笔记

【引用数据类型】
除了8种基本数据类型以外,其他的数据类型都是引用数据类型。
严格地讲,引用数据类型通常都是大写开头的。

对象指的是引用数据类型简单数据类型的值称为变量
引用数据类型的对象存储在堆内存,简单数据类型的变量存储在栈内存
堆内存和栈内存的区别:https://www.cnblogs.com/coloz/p/12118140.html

【构造方法(构造器 Constructor)】
用于创建新对象,每次创建新对象的时候都会被调用。
在默认情况下,编译器会自动添加一个没有任何内容和参数的构造器。
构造器的命名要跟类名完全一致
构造方法的主要作用是在构建对象的时候,完成初始化的行为。

【命名规范】
大驼峰命名法(帕斯卡命名法,驼峰命名法)
每个单词的首字母大写,例如StudentInfo
适用于:类名,接口名

小驼峰命名法
第一个单词都小写,其他单词首字母大写,例如name、setAge
适用于:变量、数组、方法名

常量
所有单词都大写,使用下划线分割
,例如DATABASE_NAME

【成员变量和局部变量】
成员变量:即属性,定义在类下面的变量。
局部变量:定义在类中代码块(通常是函数)里的变量。

1. 作用域
成员变量的作用域是整个类。
局部变量的作用域只有所在的代码块。
2. 初始化与默认值
成员变量可以自动初始化,有默认值
局部变量必须手动初始化,没有默认值

【继承】
继承的目的是为了实现代码复用,继承的“上级*”叫父类,“下级”叫子类。
*注:所谓的上下级指的是图示

Java的优点在于是单继承的,即一个子类只有一个父类
子类和父类是相对的。

如果一个子类仅仅只继承父类并没有什么意义,真正的子类应该基于父类的代码做出一些拓展和改动。

子类拥有父类所有的属性和方法。

【方法覆盖】
子类可以改写父类的方法。

原则:
1. 覆盖方法必须和父类中被覆盖的方法具有相同的名称、参数和返回值类型。
2. 覆盖方法不能比父类中被覆盖的方法拥有更严格的访问权限。

【访问权限】
详情见群图

注:default表示权限不写的状态,而不是一个default修饰。

【this关键字】
this可以表示当前类的对象。

注:使用System.out.println打印的时候,如果打印的是基本数据数据类型,表示打印数值。
如果是引用数据类型,大多数情况下是打印地址。

如果不清楚this到底是谁,就看当前this所在的方法被哪个对象调用,this指的就是这个对象。

【封装类】
"万物皆对象"

对于简单数据类型,为了与面向对象的思想一致,Java对它们进行了封装,使它们都拥有对应的封装类。

简单数据类型  封装类
boolean          Boolean
byte          Byte
short          Short
int                      Integer
long          Long
char          Character
float          Float
double          Double

自动的装箱(简单数据类型→封装类)和拆箱(封装类→简单数据类型)

【static】
static表示静态。
可以修饰变量、方法、类,分别称之为静态变量、静态方法、静态内部类

static修饰的变量是同一个类下所有对象共有的,非static的成员变量是每个对象独有的。
static修饰的方法内部只能调用静态变量或者静态方法,无法调用非静态变量或方法。

Tip:
任何一个编程中,黄色表示警告,警告不影响程序的运行,但是代表可以优化的点。

OneDrive(推荐的一个云存储服务)

【Android模拟器 Emulator】
x86 复杂指令集
arm 精简指令集

Tip:
下载软件必须去官网,不要去软件站。
如果使用百度没有辨别是非的能力,国内可以使用必应。

【如何运行第一个Android程序】
如何新建一个Android项目:
1.鼠标右键 --- New --- Android Application Project
2.在新弹出的窗口中输入项目要配置的参数。
3.逐次点击Next,直到点击Finish按钮完成创建。
4.在确定有连接的手机(包括模拟器)的前提下,选中项目,右键---Run As...---Android Application

阿里巴巴矢量图标库
https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2

RGB色表
http://www.wahart.com.hk/rgb.htm

【常量】
常量就是固定的数值不能被改变,且不需要改变。

public class Test {
    
    //常量
    public final static
String DATABASE_NAME = "student_info.db3";
    //常量
    public final static double PI = 3.1415926;
    
    public static void main(String[] args) {
        System.out.println(DATABASE_NAME);
        System.out.println(PI);
        //不能被改
//        PI = 1;
    }

}

【接口】
在Java中继承是单继承的,但是有时候一个类继承了一个父类之后,就无法再继承其他父类了。
这时候如果要继续拓展子类,那么可以使用接口。

1. 接口本身只包含方法的声明,没有方法的定义。
2. 接口本身不能有对象,必须有实现接口的类之后,实例化此类。

例子;有一个设备类Device,有一个计算机类Computer继承Device类,
      同时又要给计算机插入键盘和鼠标的功能。
分析:由于Computer类已经继承了Device类,因此无法再多继承键盘类和鼠标类。
      可以使用接口来解决这个问题。

二.接口意义心得

为什么不在类里直接定义函数,而要实现接口呢???这不是自找麻烦吗

原因:

你实现了bai某个接口,就必须du在此类里覆zhi盖接口里的所有方法dao,应为在接口里的zhuan所有方法都是抽象的,所以在子类里必须复写。
接口感觉就是一些类似的事物共有的域或方法,就像有一个接口animal,里面有个方法eat,然后你每一个动物的类,都去实现这个接口,因为每个动物都有各自的饮食方法,这样就增加了代码的复用性,不要再每一动物类里都要重新想一个名字来定义eat。
接口在大型程序里都是要用到的,很重要。

Android新闻客户端实训-Day1类Day2接口基操相关推荐

  1. Android实训内容及过程,Android项目开发实训大纲.doc

    Android项目开发实训大纲Android项目开发实训大纲 黎明职业大学信息与电子工程学院 <Android项目开发> 实训指导书 2014年6月 <Android项目开发> ...

  2. android新闻客户端报告,简易的Android新闻客户端

    学完Android基础之后不知道该怎么办?现在开始实战吧! 现在来看看一款简易的Android新闻客户端是怎么做的,当然,获取网络数据的这一部分我是使用别人做好的本地客户端,然后通过组建本地数据库来使 ...

  3. android视频播放器报告,android视频播放器实训报告.doc

    实训报告书 实训名称: Android视频播放器 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: 实训课题Android视频播放器实训人姓名 同组人员实训日期 实训成绩指导教师 ...

  4. android 新闻频道,GitHub - xiyy/TopNews: 一款Android新闻客户端,并提供电视台直播功能...

    TopNews 一款Android新闻客户端,独立开发完成,主要功能包括: 1 新闻频道分类,头条.社会.国内.娱乐.体育.军事.科技.财经.时尚 使用ViewPager+FragmentPagerA ...

  5. 计算机应用基础实训指导教程 王,计算机应用基础案例教程及实训指导-第2章___Windows操...

    计算机应用基础案例教程及实训指导-第2章___Windows操 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 第2章中文WinXP ...

  6. android新闻客户端实验报告,Android 新闻客户端学习笔记

    学习了新闻客户端开发后,有很多是通用的,就把客户端用到的一些做个笔记,已备以后使用,主要用到的知识点有: 1.  Android网络编程 2.  Android中BaseAdapter的使用 3.   ...

  7. android新闻客户端的实现

    制作一个基于聚合新闻数据简单的新闻APP 制作简易新闻App 导航篇 [1.使用Fragment+ViewPager +TabLayout自制简易新闻 app主要框架(一)](https://blog ...

  8. android新闻客户端(有源码)

    有些功能还没实现 源码今天起不再免费提供,评论区有联系方式 目录 一. 题目及要求 2 二. 功能设计 3 三. 详细设计 3 1. 启动页面 3 1)页面显示完跳转 3 2) 启动页面图片全屏化 3 ...

  9. Android新闻客户端(仿网易)--下

    一.摘要继上一篇博客<模仿网易新闻客户端(上)>之后,笔者继续开发我们自己的"网易新闻客户端",由于找不到现成的url新闻链接地址,所以这里就用RSS订阅所提供的url ...

最新文章

  1. 面试官:磁盘 IO 变高,你怎么分析?
  2. 腾讯2016校园招聘 研发工程师在线模拟
  3. python的窗口处理模块_Python tkinter模块弹出窗口及传值回到主窗口操作详解
  4. io操作是指什么_各种IO模型,一篇打尽
  5. Xamarin Evolve 2016 Keynote回顾
  6. ~~朴素筛法求素数(附模板题)
  7. 基于SaltStack完成LVS的配置管理
  8. 1.4-shell中特殊符号
  9. 计算机物理仿真,仿真物理实验室初中完整版
  10. “天中三少”辛东方:量子动力能传送人到另一个星球?
  11. 酷狗、QQ音乐歌词转换工具
  12. [转载]看我花式绕过校园网计费认证
  13. 15个android框架,Android常用的15个框架总结
  14. 华为推送 简介 集成
  15. [散分] 眼见为实?_眼见为实
  16. python selenium移动端网页下拉刷新
  17. Google优化排名方法
  18. 中国移动互联网测试开发大会(简称MTSC大会)
  19. 服务器证书已过期,WebSphere应用服务器证书过期问题解决
  20. 全球变暖java_Java实现第九届蓝桥杯全球变暖

热门文章

  1. scanf函数的返回值以及在while循环中的应用
  2. 文件缓存FileCache
  3. 修改文件后缀直接改变文件属性
  4. Git版本控制管理(二)--git配置
  5. 巨儒艮、漂泊信天翁……这位90后中科院动物所研究员用日历讲述“物种故事”...
  6. python xlwings追加数据_Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法...
  7. 计算机睡眠状态如何恢复,显示器进入睡眠状态怎么解决
  8. 微软zone DNS服务器,在DNS服务器上创建DNS zone
  9. 什么是盐加密 为什么使用盐加密密码
  10. linux视频拼接工具,linux中使用ffmpeg 无损剪切/拼接视频程序