当前位置:  编程技术>移动开发
本页文章导读:
    ▪利用传感器兑现微信的摇一摇功能        利用传感器实现微信的摇一摇功能package gy.lovers; import java.util.ArrayList; import java.util.List; import java.util.Random; import android.app.Activity; import android.app.Service; import android.content.res.Resources; import an.........
    ▪ 数据结构(1)数据结构算法与顺序表        数据结构(一)数据结构算法与顺序表 一、数据结构与顺序表 +理解数据结构与算法 +掌握顺序表的操作 数据结构 是指相互之间有一定联系的数据元素的集合,元素之间的相互联系 称为 逻.........
    ▪ 测试四年,说给自己听的话       测试4年,说给自己听的话 咱们所在的团队不是梦幻团队,甚至不是一个合格的互联网团队,咱们的团队缺少有预见性的有方向感的产品经理,缺少技术大牛,甚至缺少好的架构师,当然了,.........

[1]利用传感器兑现微信的摇一摇功能
    来源: 互联网  发布时间: 2014-02-18
利用传感器实现微信的摇一摇功能
package gy.lovers;

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

import android.app.Activity;

import android.app.Service;

import android.content.res.Resources;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.os.Vibrator;

import android.view.View;

import android.widget.Button;


//需要实现SensorEventListener接口

public class LoversChoise extends Activity implements SensorEventListener{

    
        Button clear;

        //定义sensor管理器

    private SensorManager mSensorManager;

    //震动

    private Vibrator vibrator;

         public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                setContentView(R.layout.loverschoise);

              //获取传感器管理服务

                mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

                //震动

                vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);

               clear = (Button) findViewById(R.id.clear);

               clear.setOnClickListener(new Button.OnClickListener(){

               @Override

                public void onClick(View arg0) {

                 // TODO Auto-generated method stub

                //点击button后,给button按钮设置了text

              clear.setText("现在给button的text赋值喽~");

        });

@Override

protected void onResume(){

  super.onResume();

  //加速度传感器

  mSensorManager.registerListener(this, 

  mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 

  //还有SENSOR_DELAY_UI、SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME等,

  //根据不同应用,需要的反应速率不同,具体根据实际情况设定

  SensorManager.SENSOR_DELAY_NORMAL);

}

@Override

protected void onStop(){

  mSensorManager.unregisterListener(this);

  super.onStop();

}

@Override

protected void onPause(){

  mSensorManager.unregisterListener(this);

  super.onPause();

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

  // TODO Auto-generated method stub

  //当传感器精度改变时回调该方法,Do nothing.

}

@Override

public void onSensorChanged(SensorEvent event) {

  // TODO Auto-generated method stub

  int sensorType = event.sensor.getType();

  //values[0]:X轴,values[1]:Y轴,values[2]:Z轴

  float[] values = event.values;

  if(sensorType == Sensor.TYPE_ACCELEROMETER){


  /*因为一般正常情况下,任意轴数值最大就在9.8~10之间,只有在你突然摇动手机

  *的时候,瞬时加速度才会突然增大或减少。

  *所以,经过实际测试,只需监听任一轴的加速度大于14的时候,改变你需要的设置

  *就OK了~~~

  */

   if((Math.abs(values[0])>14||Math.abs(values[1])>14||Math.abs(values[2])>14)){


    //摇动手机后,设置button上显示的字为空

    clear.setText(null);

    //摇动手机后,再伴随震动提示~~

    vibrator.vibrate(500);

   }

  }

}

}


现在的不少应用都用到了摇动手机改变内容的功能,比如微信中的“摇一摇”功能。前两天要实现这个功能,稍微看了一下关于传感器Sensor的内容。
传感器有几种类型:
       方向传感器:   Sensor.TYPE_ORIENTATION
       加速度(重力)传感器: Sensor.TYPE_ACCELEROMETER
       光线传感器:    Sensor.TYPE_LIGHT
       磁场传感器:   Sensor.TYPE_MAGNETIC_FIELD
       距离(临近性)传感器: Sensor.TYPE_PROXIMITY
       温度传感器:   Sensor.TYPE_TEMPERATURE
在摇动手机的功能中,我们只用加速度传感器就行了~~

加速度传感器返回值的单位是加速度的单位 m/s^2(米每二次方秒),有三个方向的值分别是
  values[0]: x-axis 方向加速度
  values[1]: y-axis 方向加速度
  values[2]: z-axis 方向加速度
  其中x,y,z方向的定义是以水平放置在的手机的右下脚为参照系坐标原点
  x 方向就是手机的水平方向,右为正
  y 方向就是手机的水平垂直方向,前为正
  y 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负
所以说,你的手机放置的空间位置不同,它三个方向的加速度也不同。在这里,三个方向的加速度,与我们传统意义上的加速度(9.8m/s2)有所区别,需细细品味

以上是摇动手机后清除TextView的文字的代码。

 

1楼gelosie昨天 15:43嗯,基于 Android 的

    
[2] 数据结构(1)数据结构算法与顺序表
    来源: 互联网  发布时间: 2014-02-18
数据结构(一)数据结构算法与顺序表


一、数据结构与顺序表

+理解数据结构与算法
+掌握顺序表的操作

数据结构 是指相互之间有一定联系的数据元素的集合,元素之间的相互联系 称为 逻辑结构。
数据元素之间的逻辑结构分为:
                          集合     线性           树形         网状结构
                          无序    一条线     Win资源管理器       拓扑
数据结构的研究:
1、数据的逻辑结构
   逻辑关系的描述,独立于计算机的。
   分为:线性(线性表、栈、队列)和非线性(树形结构、网状结构)

2、数据的存储结构

   分为:顺序存储、链式存储、散列表(哈希)、索引表(目录)
 

3、数据的运算       
 
   分为:增加、删除、修改、查找、排序 
 
 
算法 是对特定问题求解方法的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。

   描述算法的两个参数:
   时间复杂度:基本操作重复执行n次 T(n)=0(f(n))
   空间复杂度:运行时所需要的存储空间的大小的质量 S(n)=0(f(n))
  
算法的要求:

   正确性、可读性、健壮性、通用性、效率与存储量需求

================================================================================
线性表:

    由 n(n>0)个元素组成
 n=0 空表
 n>0 讲非空线性表记为 a0 a1 a2 a(n-1)
    a0为首节点 a(n-1)尾节点
 
 顺序表:线性表的节点按照逻辑顺序依次存放在一组地址连续的存储单元,用这个方法存储的线性表为顺序表
 两个最常见的操作:存数据和取数据
 特点:
     1、物理顺序和逻辑顺序是一致的
  2、数据之间的关系,可通过物理关系体现
 
 操作:
 初始化顺序表
 在指定位置插入一个元素
 
  实现步骤:
  1、检查顺序表是否已满
  2、插入的位置i是否合法(是否越界)
  3、将现行表L中的第i个元素至第n个结点后移一个位置
  4、将结点e插入到结点a(i-1)之后(其实就是第i个位置)
  5、线性表长度+1
  
 
 在指定位置删除一个元素
 
     实现步骤:
  1、检查顺序表是否为空
  2、检查删除位置i是否合法
  3、将线性表L中的第i+1个至第n个结点依次向前移动一个位置
  4、线性表长度-1
  
 顺序表总结:
 
     1、插入或删除一个数据元素时,时间主要耗费在移动元素上,而移动元素的个数取决于插入或删除元素的位置
  2、空间不能充分利用,扩展能力较差
  3、若线性表的主要操作时进行查找及存取表中任一个元素,插入和删除操作较少时,采用顺序表存储结构为宜
 
 作业:
 1、从文件中读取一个顺序表的数据,对顺序表中的数据进行添加、删除、修改等操作,然后再保存到原文件中,每个功能编写一个函数,由mian函数调用‘
 2、合并两个顺序表,需要将其中一个表的数据连接到另外一个表的后面,需要考虑内存溢出的情况。

1楼lidaoweitt昨天 02:29``````````

    
[3] 测试四年,说给自己听的话
    来源: 互联网  发布时间: 2014-02-18
测试4年,说给自己听的话

本来是写给组内的一个同学的,没想到越写越长,想来想去,还是写个自己吧,毕竟每个人都有按自己的方式成长的权利和自由,而且自己也还在成长中,难免会误导别人~珍惜每个人在成长时付出的努力~

 
咱们所在的团队不是梦幻团队,甚至不是一个合格的互联网团队,咱们的团队缺少有预见性的有方向感的产品经理,缺少技术大牛,甚至缺少好的架构师,当然了,同时也缺少测试牛人。
为什么这么说呢?

产品没有清晰的产品预期;研发没有工作激情;测试为了测试而测试。为什么会这样呢?因为咱们目标性不够。好的团队一定是和而不同的。比方说大家都相信这个产品会成功,都有一个美好的愿景,但在操作过程中,有的人要在过程中提升自己,有的人要在过程中获得物质保障等等。

 
咱们处于整个项目流程的下游,我们也有很多尴尬和为难的地方:
1、咱们不能强烈的要求产品走向,包括咱们很多测试建议被产品无限期搁置,或被认为小题大做;
2、咱们不能要求研发做好自测,甚至无法要求研发一定要把那个导致疑难杂症解决掉。
咱们不能做的太多,能做的太少,却要对整个质量负绝大部分的责任,那我们该怎么办呢?

那我们只能先做好自己的本职:1、保证质量;2、保证进度;3、剖析和自省
这里的质量不只是提测的代码,还包括项目流程中的所有活动,及各个活动的产出。如需求评审,这个流程的存在是否有意义,存在的形式是否达到了预期。
这里的进度,不光是提高咱们工作时的效率来保证,也不是靠加班来保证,因为咱们能做自动化的已经做了自动化,加班本身是不好的,咱们不提倡。OK,比咱们谁输入测试地址更快?比咱们的手指谁的更灵活?
当然也不是,咱们是不是可以换个思路呢?
1、咱们测试时的时间消耗在哪儿?
2、咱们的上游工作哪些会给咱们带来风险?
咱们先说第一个问题:时间消耗
或许用例确实不重要,但是我们有没有出现过执行别人写的用例时,不但要执行,还要先看懂,还要揣摩这个用例的目的和企图呢?
咱们输入测试地址很麻烦,咱们有没有什么好的工具,好的方法可以解决呢?
咱们跟研发、产品沟通花了好长时间,那咱们有没有更好的方式去沟通呢?并且使得沟通更有效率呢?比方说我们在沟通时尽量表述清楚我们的问题及风险,让其他人能快速清楚我们的目的,快速达到咱们的目标。
在测试中不断补充用例。这个过程是必要的,而且一定会存在的。但是我们在这之间新增、修改的用例,又有多少是咱们前期在设计时更细致些就能规避的呢?
咱们再说第二个问题:保证进度
每个版本都有delay的充分合理的理由。那咱们有没有事先想过会有哪些情况会影响到进度呢?比方说UI不能及时提供,研发就会delay,那对于UI什么时候提供,咱们是否有关注过呢?是否问过产品,并且是否让他们感受到UI延迟提供的话会影响到项目进度?
咱们哪些工作可以前置,以缩短提测后的测试执行时间呢?咱们有什么方法可以将测试进度提前不哩?这些问题咱们有没有思考过呢?
第三个问题:剖析和自省
这个事儿做起来很难,因为咱们内心里都是觉得自己做的其实已经够好的了,为什么还要我们做的更好呢?
可是咱们真的做的足够好了吗?咱们是不是只是没其他人做的糟糕呢?咱们是不是满足于现在的情况,我只是没扯大家的后腿,但也没推进大家往前的状态呢?
OK,其实我无数次的想,咱们组做到这个程度,在这个团队完全可以存活,可是为什么还要提高呢?因为咱们只有20多岁,咱们还要成长,还要获得更多的成就。咱们都不想到了30多岁仍处于目前的状态。那我们现在做的这些,不是仅仅保证咱们在30岁依然可以做一名测试工程师吗?
我们目前做的,真的发挥出我们的极限了吗?如果没有,咱们现在做的不过是在浪费时间罢了,只有测试工龄的长度,却没有质变。咱们可以问自己一个问题:如果是个刚毕业的,想达到我现在的程度需要多久呢?
再说个题外话:
其实咱们工作都不久,都是刚从一个学生过度到一个职业人。为什么说是一个职业人呢?因为我们在工作中要收起自己的一些“本性”,比方说遇到不合理的事情,内心里说了飙完了自己会的所有脏话,依然要面带笑容理性处理;遇到不爽的人,心里问候了他们全家,还是要温和的跟他沟通。比方说写邮件时,我们要按照一定的格式,仅仅是为了给别人留下一个professional的印象;甚至在办公室的手机铃声类型、音量都要开始慢慢规范自己。
可能会觉得,互联网公司不是都在崇尚自由、快乐吗?因为首先这是一个公司,而不是一个学校,咱们周遭的不再是可以容忍咱们各种本性释放的,当然跟咱们也没有任何利益关系的同学、老师,而是对咱们有很多预期(规范)的,有各种利益纠葛的同事、老板。试想,如果咱们有天去创业开公司了,每天去公司,希望看到什么样的员工呢?其实很多答案咱们都知道,只是不愿意去想罢了。

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3