1.阅读开源计步器项目pedometer项目找到项目相关部件,paceNotifer。其在SenserEventlistener中被回调。

在其中判断本来直接更新到界面上面的步频范围数据。根据划分的范围触发不同的时间。

2.这里我第一次做的,对于我自己来说的突破性设计是状态机的编程。曾经以为比较难做,但是实现起来还是比较好做的。一个类里面设置各种状态量。然后一个公共函数进行调用。调用的过程中有两个重点,第一点是根据当前的状态和输入的状态二者共同判断对于输入的处理。第二点就是根据处理的结果设置这次的状态。以后的部件的处理也都是围绕这个思路。

3.根据2的思路进行部件的设计。其实这个设计也收到了源码当中对于每一步的判定的启发。包括环形队列求平均值进行出入滤波。录播结果和阈值比较超过某一范围进行触发。超过某一范围记录触发次数,到达阈值一定次数以后再次进行触发。触发进行事件业务以后重新设置阈值。使用线程sleep、

延时和标志位恢复进行状态禁止和恢复状态许可。

下面为涉及到的一下小知识点;

1.使用raw中的文件:

apk目录raw下的文件没有大小限制并且不会被编码。可以直接只用R.raw.“id”进行获取。

2.Math包下的abs可以去绝对值,ceil floor分别对应向上取整和向下取整。如果使用除法注意每个运算数尽量转化为float或者double。

3.关于随时需要获取的context对象。其实使用这个对象的时候就是操作系统需要判断你是哪个包里面进行的调用。如同你说要干什么,别人要先看看你是谁然后给你提供对应服务一样。这里面采用继承一个Application类进行,在其构造方法中使用getApplicationContext方法给定义的静态Context对象进行赋值。再写一个getContext的公用方法。以后的其他的地方用的时候直接用mApplication.getContext()就可以。注意着mApplication一定要在清单文件当中进行说明name才能被加载。

4.关于音乐播放的操作系统疑问。播放音乐的代码即使下载ui主线程也是可以进行正常使用的。只是这样的话如果在activity里面的话其生命周期会收到影响。所以往往都在service里面进行播放。而android系统会根据你的调用另起一个进程进行媒体播放,所有对于播放器控制的函数底层都是跨进程调用,所以不会产生阻塞问题。虽然一知半解,但是拓宽了我的思路。

5.项目移植问题。

eclipse移植到AS中要注意的问题。1.编码:重载后转换来排除乱码  2.清单文件的检查。因为功能被分配到gradle一部分,所以可能丢失一些信息。比如自己定义的 Application的名字的声明。这是一个bug。3.sdk的更新,以及其版本说明在gradle里面。

6.关于java传值,传引用的问题。

java只是传值,原来一直都是一知半解。今天遇到了在函数里面使用实参无法改变形参的值的问题。其实这就是在java里面的特性。实参复制了形参的引用,两个引用指向同一个对象。对其进行改变其实只是把实参的引用重新指向了其他的对象。而不会将原来指向对象进行改变。但是有一点很重要,就是如果你可以改变指向对象的公有属性,或者调用其公共方法。比如从mApplication中获取context就是这种。可以传入包含你要改变对象的数组,或者其父对象,这样就可以进行改变,而不必担心指向了其他地方。这里尤其容易犯错的就是对已基本类型知道无法改变形参而“聪明滴”使用了Integer等封装类型,结果也是一样不能改变,并且一切都对象类型都是如此。可见实践的重要性,只读书的话我永远都不会体会到这一点。

7.检测移动端的cpu占用率以及其他性能。如果使用eclipse,可以使用adb进行 。top -m 5 -t -d 3(-m 最大数;-t 显示进程名;-d刷新间隔)。当然提前要配置androd的环境变量。可以自己定义一个环境变量名然后使用双百分号添加到公共变量中。这里adb在toolsplatform-tools文件夹中。

使用AS可以进行cpu和其他参数的实时数据分析,并且可以对cpu占用进行trace录制。还是很有搞头的。

当然,从哲学层面上来讲,所有理论上的共识都会在实践中得到终极的验证。而只有在实践中进行验证的时候,对于理论的认识才可能达到完整和客观。

跑步节奏音乐匹配Android项目开发和调试经验相关推荐

  1. Android项目开发填坑记-Fragment的onAttach

    背景 现在Android开发多使用一个Activity管理多个Fragment进行开发,不免需要两者相互传递数据,一般是给Fragment添加回调接口,让Activity继承并实现. 回调接口一般都写 ...

  2. Android项目开发—GeoQuiz

    Android项目开发-GeoQuiz 应用规划 确定功能 必须的界面及界面跳转的流程 ... 界面设计 主界面确定 模块界面.列表.查看.编辑界面 添加需要的组件 ... 数据操作和存储 业务实现 ...

  3. Android项目开发:指南针(两种方法实现)

    Android项目开发:指南针应用的实现 1.基于方向传感器 activity_main.xml MainActivity.java 2.基于加速度传感器和地磁传感器 在Android中可以使用内置传 ...

  4. Android项目开发:简易计步器

    Android项目开发:简易计步器的实现 本文将介绍基于Android的加速度传感器和陀螺仪传感器开发一个简易的计步器,基本原理:当检测到加速度发生改变时,使步数加一. activity_main.x ...

  5. Android项目开发实战常用知识点

    Android项目开发实战常用知识点 一:启动页延时两秒再跳转到主界面: //执行类 private class SlpashRunnable implements Runnable {@Overri ...

  6. android项目开发教程,Android项目开发教程

    Android项目开发教程 编辑 锁定 讨论 上传视频 Android项目开发教程 书    名 Android项目开发教程 作    者 车金庆.何征天.李琳.严正宇.周凌翱 类    别 图书&g ...

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

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

  8. android 建立工程文件,Android 项目开发必备-建立属于你的build.gradle文件

    timg (1).jpg 开发一个Android项目不仅仅需要你会写java/kotlin代码,而且你还要了解各种配置文件.例如.AndroidManifest.xml,混淆文件,build.grad ...

  9. 浅谈Android游戏开发基础和经验

    Android游戏开发基础和经验是本文要介绍的内容,主要是来了解并学习Android游戏开发的内容实例,具体关于Android游戏开发内容的详解来看本文. 做一个类似俄罗斯方块的android游戏开发 ...

最新文章

  1. 文件系统管理 之 Linux 创建文件系统及挂载文件系统流程详解
  2. 滤波器的主要特性指标
  3. python简单代码画皮卡丘-实现童年宝可梦,教你用Python画一只属于自己的皮卡丘...
  4. android重新加载程序,从被杀死的Android应用程序中恢复
  5. linux 内核配置 dns,linux bind dns简单配置
  6. jQuery实现表格隔行换颜色:
  7. 数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
  8. 计算机工作应用工作简历,计算机应用专业工作简历范文
  9. 网络管理与维护作业10
  10. php常用设计模式和算法,常用算法、问答、设计模式
  11. 服务器如何开启电脑的虚拟化技术,win7怎么打开vt虚拟化技术|win7在bios开启vt虚化的方法...
  12. 人类迁徙计划 (feat.译者补完篇)
  13. 【Java】maven-shaded-plugin超详细详解
  14. 使用proteus仿真验证基尔霍夫定律
  15. PHP 实现精确统计在线人数功能
  16. lammps计算聚合物例子_MD原理与Lammps实例.ppt
  17. java线程池的应用_Java线程池的使用
  18. Kotlin 学习笔记(二)—— 数据类、密闭类、循环写法以及常用集合操作符
  19. 随机过程 更新过程(下)
  20. 提高PLC编程能力的6种电路,新手必学!

热门文章

  1. mysql百万数据写入_快速写入百万数据
  2. Python基础:面向对象编程实战——简易图书管理系统
  3. 【数据库基础】02_数据库基础练习
  4. 第03章 Python的数据结构、函数和文件--Python for Data Analysis 2nd
  5. Linux--JVM内存设置
  6. 学习lua第一步-lua解释器luac.exe
  7. 利用opencv+QT打开并显示图片
  8. java下载文件时文件名中文乱码
  9. visio 2013下载安装
  10. rap2服务端delos环境搭建