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')
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,421评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,396评论 2 45
  • 这篇文章是对接下来要写的文章的一个目录说明,这个系列主要是针对安卓的进阶知识的系统阐述或者描述,其中或者引用或者举...
    ZJ_Rocky阅读 28,947评论 16 334
  • 回顾中国电影的历史,曾经看过些描写革命战争抗日战争的电影,比如《小兵张嘎》之类的(我们小学的一位长着娃娃脸的小女生...
    夏曦曦Walt阅读 178评论 0 1
  • 其实,我不讨厌你,真的很喜欢你,女孩。 那时,身为前后桌的我们,我就不明白了,为何在上课的时候,你会踢我,还是...
    呜啦啦啦啦呜啦啦啦阅读 184评论 0 0