android高级进阶

  • 传感器的使用
    传感器在手机上应用很广泛,有方向传感器, 加速传感器,重力传感器, 光线传感器,陀螺仪传感器, 压力传感器,心跳传感器等。
    那我们来说说代码吧,
    //从系统服务中获得传感器管理器
 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')
}

你可能感兴趣的:(android高级进阶)