- 传感器的使用
传感器在手机上应用很广泛,有方向传感器, 加速传感器,重力传感器, 光线传感器,陀螺仪传感器, 压力传感器,心跳传感器等。
那我们来说说代码吧,
//从系统服务中获得传感器管理器
SensorManager sm=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
获得传感器对象(这里是光传感器)
mSensor=mSensorManage.getDefaultSensor(Sensor.TYPE_LIGHT);
当然还有其他的传感器
必须重写的两个方法:onAccuracyChanged,onSensorChanged
public final void onAccuracyChanged(Sensor sensor, int accuracy) {
//TODO 在传感器精度发生改变时做些操作,accuracy为当前传感器精度
}
public final void onSensorChanged(SensorEvent event) {
// 大部分传感器会返回三个轴方向x,y,x的event值,值的意义因传感器而异
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
//TODO 利用获得的三个float传感器值做些操作
}
注册传感器并让本类实现SensorEventListener接口
@Override
protected void onResume() {
super.onResume();
mSensorManage.registerListener(this,mSensor,SensorManager.SENSOR_DELAY_UI)
注销传感器
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
- gradle
1.Gradle 是新一代的自动化构建工具,它是一个独立的项目,跟 AS、Android 无关,官方网站:https://gradle.org/ , 类似 Ant、Maven这类构建工具都是基于 xml 来进行描述的,很臃肿,而 Gradle 采用的是一种叫做 Groovy 的语言,语法跟 Java 语法很像,但是是一种动态语言,而且在 Java 基础上做了不少改进,用起来更加简洁、灵活,而且 Gradle 完全兼容 Maven、Ivy,这点基本上宣布了 Maven、Ivy 可以被抛弃了,Gradle 的推出主要以 Java 应用为主,当然目前还支持 Android、C、C++。
2.Gradle 跟 Android Studio 其实没有关系,但是 Gradle 官方还是很看重 Android 开发的,Google 在推出 AS 的时候选中了 Gradle 作为构建工具,为了支持 Gradle 能在 AS 上使用,Google 做了个 AS 的插件叫 Android Gradle Plugin ,所以我们能在 AS 上使用 Gradle 完全是因为这个插件的原因。在项目的根目录有个 build.gradle 文件,里面有这么一句代码:
classpath 'com.android.tools.build:gradle:2.1.2'
这个就是依赖 gradle 插件的代码,后面的版本号代表的是 android gradle plugin 的版本,而不是 Gradle 的版本,这个是 Google 定的,跟 Gradle 官方没关系。关于 android gradle plugin 的更多信息可以到这里查看,这里列举了 android gradle plugin 每个版本的具体变化与具体功能:
http://tools.android.com/tech-docs/new-build-system
3.gradle的几个简单的命令
gradlew -v 版本号
gradlew clean 清除....../app目录下的build文件夹
gradlew build 检查依赖并编译打包
老师说gradle内容很多,需要我们自己来学习下,缩一上面的那个网站就很重要啦 - android 依赖
如何使用library和libs
jar
library
library中的jar
android studio中的依赖方法
在我们开发大程序程序的时候就要引用,比如我们在lbs中应用百度地图
我们在这里主要讲一下代码操作吧,可视化的在android studio中操作
引用library,首先我们要在build.gradle中的dependcies中写
compile project(':library')
引用jar
compile files('文件的名字。jar');
还可以在maven库中直接搜索
- arr是什么?
为了解决Android开发中组件引用的问题,引入aar格式。也是简单的zip格式。定义:The ‘aar’ bundle is the binary distribution of an Android Library Project.Zip包中的内容有:
/AndroidManifest.xml (mandatory)
/classes.jar (mandatory)
/res/ (mandatory)
/R.txt (mandatory)
/assets/ (optional)
/libs/.jar (optional)
/jni//.so (optional)
/proguard.txt (optional)
/lint.jar (optional)其中,R.txt是aapt –output-text-symbols命令的输出。 - 如何生成aar
先默认新建一个Applicaton module,接后File > New > New
Module,选择Androd Library > Next,指定Library Name和Module Name。
新建的Library与正常的Application最大区别是module build.gradle中是apply plugin: ‘com.android.library’ 而不是 apply plugin: ‘com.android.application’.然后运行就直接生成aar啦 - 引用aar
把aar粘贴到要引入库的Application Module/libs目录下,如没有libs目录,创建就好。注意要在Application Module根目录下,不是Project根目录下。
在Application Module/build.gradle中添加
repositories{
jcenter()
flatDir{
dirs 'libs'
}
}
在Application Module/build.gradle中添加依赖
dependencies {
compile(name:'mylibrary-debug', ext:'aar')
}