自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 讯飞AIUI语音初体验

集成SDK      近期使用科大讯飞AIUI开发一款智能语音灯控项目,因此在这记录一下我的心得,写的不好忘各位大佬见谅,不喜勿喷呐,下面就像大家介绍一下我的使用心得,注册讯飞账号,添加项目这些个常规操作就不用多说了吧,直接进入正题:     AIUI主要的技能分为两种:开放技能和自定义技能,开放技能包含的内容有天气,计算,百科,笑话等通用技能,自定义技能则是开发者自己定义的Intent(...

2018-04-23 16:48:08 6278 4

原创 安卓 11 文件储存

一. 安卓 10储存特性Android 10 所带来的关于存储上的变更遵循了以下三个基本原则更好的从属性:系统知道哪些文件属于哪些应用,这可以让用户更方便地管理他们的文件。当应用被卸载后,除非用户需要,否则应用之前所创建的文件也不应该保留在设备上; 保护应用数据:当一个应用将它所属的文件写入外部存储时,这些文件是不应该被其他应用所访问的; 保护用户数据:当用户下载了一些文件,比如带有敏感信息的邮件附件,这些文件应该对其他应用不可见二.强制执行分区储存在 Android11 上运行...

2021-10-26 11:33:45 2119

原创 百度语音唤醒

一:前期准工作(1)进入百度开放平台,注册账号,创建应用,拿到应用相对应的AppID,API密钥,密钥(2)配置相关信息<uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:na...

2020-05-27 19:59:20 2210 2

原创 Android 知识总结

一、AIDL理解此处延伸:简述BinderAIDL: 每一个进程都有自己的Dalvik VM实例,都有自己的一块独立的内存,都在自己的内存上存储自己的数据,执行着自己的操作,都在自己的那片狭小的空间里过完自己的一生。而aidl就类似与两个进程之间的桥梁,使得两个进程之间可以进行数据的传输,跨进程通信有多种选择,比如 BroadcastReceiver , Messenger 等,但是 BroadcastReceiver 占用的系统资源比较多,如果是频繁的跨进程通信的话显然是不可取的;Messenge

2020-05-15 14:46:52 232

原创 Kotlin 转换

1.转换为数组当我们声明一个集合,可以把这个集合根据调用集合类相应的高阶函数来转换成相应的数组。集合类提供了toIntArray()、toDoubleArray()、toFloatArray()、toBetArray()等高阶函数去处理。下面提供一个函数的源码,其他函数的源码处理逻辑是相同的,有兴趣的朋友可以去看看这个源码类。源码:public fun Collection&lt...

2020-04-23 16:02:56 1221

转载 App 全局智灰

一 、如何实现页面灰度化实现灰度化的思路应该从Paint出发,因为系统是通过Paint将内容绘制到界面上的,如果能找到Paint相关的设置方法,那就再也合适不过了。自定义View做得多的同学可能知道Paint中可以设置ColorMatrix,以下是其源码,从源码的注释我们可以看到如果将setSaturation的sat参数设置为0就代表灰度模式。OK,说干就干,我们自定义一个图片...

2020-04-18 17:33:26 464

原创 高德地图定位工具类

/** * 定位--当前所在的位置 */public class MyLocationUtils { private static MyLocationUtils instance; private AMapLocationClient locationClient = null; private AMapLocationClientOption location...

2020-04-12 19:24:40 487

原创 Unable to determine application id: com.android.tools.idea.run.ApkProvisionException:

Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: No outputs for the main artifact of variant:’在运行旧项目在 Adroid Stuido 3.6.q的时候,突然出现了如上的一个报错,Apk 不能安装到手机上,网上很多小伙伴都提...

2020-04-04 11:38:11 1570

原创 Kotlin 高阶函数

官方api其实已经将我们常用的快捷操作用高阶函数给封装好了,比如with,apply等操作符,所以剩下的就是接口调用了。不知道大家用Kotlin实现过OnClickListener接口没有,有3种写法:普通点击:view.setOnClickListener(object:View.OnClickListener{overridefunonClick(...

2020-03-27 11:34:02 247

转载 Kotlin之数组和集合

一.Kotlin数组 kotlin为数组增加了一个Array类,为元素是基本类型的数组增加了xxArray类(其中xx也就是Byte,Short, Int等基本类型)Kotlin创建数组大致有如下两种方式:1.使用arrayOf(), arrayOfNulls(),emptyArray()工具函数。2.使用Array(size: Int, init:(Int) -> T...

2020-03-19 17:12:52 528

原创 广告病毒排查

最急上架 app 到各个市场的时候,安装的时候出现了爆病毒错误,在一系列的排查之后,得出了一个结论,病毒广告是以什么样的方式存在你的 app 中的。该应用程序启动后隐藏图标,后台和 js 交互私自订阅付费网页,后台下载未知文件, 上传手机固件信息、收件箱信息,并通过 js 网页发送短信,获取电话号码等,会造成 用户隐私泄漏及资费消耗,建议卸载。上诉就是一个病毒存在原因,js 文件里面恶意...

2020-03-09 01:13:08 225

原创 2020 开年计划

回首 2019 年的年初计划,有实现的,也有没有实现的,2019年是一个不平凡的一年,喜怒哀乐,悲欢离合,百感交集,但是还是熬过来了,坚持下来了,也算是成功的一年的把,这里也算安慰自己,嘿嘿。2020 年的开端是艰难的,疫情的严重,上班的延期,让我在家呆了很久,在家呆着的日子,自身的小毛病也是漏洞百出,细节一词真的是被我“诠释”的淋漓尽致,所以还是要多注意细节,俗话也说的好,细节决定成败!...

2020-02-20 17:17:52 349

转载 Kotlin中?和!!的区别

先阐述两个概念:"?"加在变量名后,系统在任何情况不会报它的空指针异常。"!!"加在变量名后,如果对象为null,那么系统一定会报异常!当使用Android Studio把上面那段Java自动转换成KT代码写法后: val myList : ArrayList<String>? = null Log.d("TAG", "-->&...

2020-01-11 16:08:46 414

转载 8.0 service适配

改变启动service方法startForeground(1, notification);华为如果只写着一句 没有问题 但是原生和小米上会有问题,改用如下在被启动的Service创建服务后的五秒内调用startForground(1, new Notification()),如果不调用或调用时间超过5秒会抛出一个ANR。startForground 0 和1 传入有区别 ...

2020-01-06 16:38:30 281

转载 Kotlin let操作符

let扩展函数的实际上是一个作用域函数,当你需要去定义一个变量在一个特定的作用域范围内,let函数的是一个不错的选择;let函数另一个作用就是可以避免写一些判断null的操作。1、let函数的使用的一般结构object.let{it.todo()//在函数体内使用it替代object对象去访问其公有的属性和方法...}//另一种用途 判断object为null的操作object...

2019-12-21 11:00:41 13029 1

原创 Android依赖冲突

前言实际开发过程中不可避免的会使用到一些第三方,而我们引用的第三方可能会和我们使用的其他库产生冲突;或者由于其他原因需要对依赖进行剔除。依赖冲突的解决方法其实很简单,主要就为以下两个步骤:依赖分析,找到冲突的依赖。 剔除依赖或者强制使用某个版本的依赖。剔除依赖通过移除某个第三方中特定的依赖。使用exclude group:'group_name':module:'modul...

2019-09-27 14:55:27 478

原创 Android 获取音频焦点工具类

public class AudioFocusChangeUtil { private static AudioFocusChangeUtil instance; private AudioManager audioManager; public static AudioFocusChangeUtil getInstance(){ if (instan...

2019-09-27 09:37:41 493

原创 aar二次打包

一. 需求来源项目中使用到aar , 而当前使用的aar文件中jni文件夹中的so包只包含armeabi-v7a 和 arm64-v8a,但公司项目中使用到别的第三方的so包只兼容了armeabi, 项目中的gradule配置为: abiFilters ‘armeabi’, 为保持一致性, 需要给当前使用的aar进行二次打包 ( 方案: 再jni文件中新建一个armeabi文件夹, 拷贝v7a...

2019-09-23 14:01:12 375

转载 Android WiFi热点开发

创建热点1、根据加密类型、密码、是否隐藏等参数来创建热点 static WifiConfiguration createWifiConfig(String SSID, @WifiSecurityType int wifiCipherType, String password, boolean hiddenSSID) { WifiConfiguration wifiCon...

2019-09-07 10:49:56 1579

原创 Kotlin学习笔记之 操作符重载

操作符方法对应表表达式 翻译为 +a a.unaryPlus() -a a.unaryMinus() !a a.not() a++ a.inc() a-- a.dec() a + b a.plus(b) a - b a.minus(b) a * b a.times(b) a / b a.d...

2019-08-27 16:55:12 134

转载 Splash 闪屏页流程与功能分析

闪屏流程分析要说到闪屏,几乎已经是所有 App 的标配了。但是各家对于闪屏的理解和应用方式各不相同。比如 Google 自己并不建议在闪屏页中设置过长的停留时间,而只是作为冷启动过程的一种变相缓冲,以就是仅在背景上设置一个 APP Logo 来避免屏幕留白。但在中国,几乎所有的流量还不错的 App 都会在闪屏页中加入广告,或者自己应用中某个主题活动的宣传,在增强品牌效应。这其中又有不同的使用流...

2019-08-25 21:25:25 579

原创 有心贪得无厌,无心万念俱灰

人大抵都贪心不足,轻易握在掌中的,常不觉欢喜,总对得不到的趋之若鹜,到头来,得不到的还是得不到,待杜鹃啼血,百转千回,直把那万般风景都看透了,再蓦然回首,方惊觉,原握掌中的已不在灯火阑珊处。 朱颜辞镜花辞树,到底人间留不住。 生而为人,就要活的有理想,有信念,有胆识,有文略。然后在现实的生活中,处处都是荆棘,到处遍满倒刺,会折磨你的耐心,折磨你的意志,年中了,回顾半年时光...

2019-08-07 10:54:35 185

原创 Android Studio 编译器插件

一:插件的介绍Google 在2013年5月的I/O开发者大会推出了基于IntelliJ IDEA Java IDE上的Android Studio。AndroidStudio是一个功能齐全的开发工具,还提供了第三方插件的支持。让开发人员更快速更好的开发程序。二:插件的安装in Android Studio: go to File → Settings → Plugins → B...

2019-07-17 11:51:30 470

原创 Android 动画库

目录一:Lottie二:Spruce Android Animation Library三:InfiniteCards一:Lottie简介:Lottie是一个可以播放由AE打包的json动画文件的开源库,使用它,你可以简单实现播放利用AE制作的动画。(其实Lottie的本质就是解析.json文件并通过Canvas方式进行绘制动画)Start: 2.6 k支持类型:...

2019-07-13 09:56:13 1964 1

原创 Android 启动速度优化

一:影响启动速度的原因高耗时任务数据库初始化,第三方框架初始化,大文件读取,MultiDex 加载等,导致 CPU 阻赛。类过于复杂Java 对象的创建也是需要一定的时间的,如果一个类结构比较复杂, New 一个对象将消耗较高的资源,特别是一些简单的单例的初始化,需要特别注意其中的结构。主题及 Activity 配置有一些 APP 是带有 Sphash 页的,有的是则是直接...

2019-06-14 15:22:45 156

原创 Android 版本适配:9.0

一:老旧项目在 9.0手机上老弹出 Dialog解决办法:private void closeAndroidPDialog(){ try { Class aClass = Class.forName("android.content.pm.PackageParser$Package"); Constructor declaredConstructo...

2019-06-10 17:05:32 852

原创 android studio 3.0 以上版本出现 NDK 报 mips64el-linux-android-strip 找不到

由于升级了 Android Studio,以前的老旧项目编译的时候出现了各种问题,编译 NDK 的时候出现了找不到mips64el-linux-android-strip,或者找不到类似的文件,这个时候你不需要慌乱,如果你的是 Window 电脑,找到 NDK 的安装目录,步骤如下:1. Studio 查看 NDK 的安装目录2. 在我的电脑中找到相对于的文件夹即可如果...

2019-06-05 18:20:34 378

原创 Android 中 Serialazabe 和 Parcelabel 的使用和区别

一:为什么要序列化1. 序列化的目的是: 保存对象,将对象数据保存在文件,磁盘或者是数据库中2.将序列化之后的对象在进程间传输3.在使用 Intent 传输数据的时候,数据类型较为复杂的需要进行序列化。如果实现 Serializable 接口,直接实现 Serializable 接口即可二:使用Serializable 只要实现Serializable 接口就可以了;Pa...

2019-06-04 09:45:38 227

原创 升级Android studio 3.2遇到的问题

1:Process 'command 'C:\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 2解决办法:gradle.properties文件中,如果使用的是2.14.1的版本,更改为绿框中的配置项目的build.gradle文件中修改build tools版本,我是改成3.1.4,正好可用,但是...

2019-04-12 17:51:36 159

原创 微信支付简单封装

1、微信支付、登录、分享工具类:WXApiHelper.java/*** 微信SDK帮助类*/public class WXApiHelper { private static final String WX_APP_ID = "wx666666";//TODO 微信相关 private static final String WX_APP_SECRE...

2019-04-12 17:03:45 904

原创 总结处理 BUG 的方法

近期参加开发一个庞大的项目,晓言智能带屏音响,由于工期很紧凑,所以开发时,代码有很多的不规范的地方,所以导致了一些不必要的 BUG 出来,在这里就总结一下处理 BUG 的心得。 遇到 bug 不要方,第一步是找到错误的地方,然后对代码进行定位,联系上下文,找到问题点,这个是最基本的解决方法之一 如果联系上下文还是解决不了的话,就可以打 Log 日志,跟踪自己打的日志去...

2019-04-10 21:14:56 497

原创 相处之道

一、学会忍让所谓“小不忍则乱大谋。”虽然有时候忍让的确会让自己受点儿委屈,甚至会吃点儿小亏,可是却能够很好地拉近彼此的关系,因为他们会觉得你性格很好,很容易亲近!反之,旁人就会觉得你这个人没有肚量,从而与你越来越远!另外,你应该主动去了解对方的脾气、秉性,看看他都有哪些优点,哪些缺点。如果他本来就是一个说话很直的人,就不要去在意他说话的方式。如果他的话伤害到你,那也是无心的。这样的人...

2019-03-13 10:04:56 150

原创 极光推送自定义消息处理

一:注册极光后台 用户到极光官网,注册相应的账号,然后登陆到极光, 创建自己的应用,然后获取到相应的 Appkey ,注意:创建的应用的包名必须和你的应用的包名一样,不然会出现收不到消息。二:初步的功能集成 下载极光官网的 Demo ,按照官方文档进行集成,或者按照他给的 Demo 集成也是可以的,然后进行测试,通过后台发送通知或者自定义消息测试是否集成成功。 集...

2019-03-13 09:54:29 1649

原创 年初计划

 2019年的春节已经过去了,今天是上班的第一天,小弟先住各位猪事顺利,步步高升,永无 BUG 新的一年里,要给自己制定一个新的学习目标和工作目标,俗话说的好,没有规矩不成方圆。下面就是我对我 2019 年的整个一年的计划1. 技术上,学习一门新的开发语言2. 身体健康指数要达到上等3.学习新的软件,掌握更多的操作性工具4.自身技术要达到一个质的飞跃5. 关爱线下生活,不要...

2019-02-12 14:33:37 267

原创 Kotlin 关键字

 1. as 用于类型转换 ,为导入指定一个别名2. as? 用于安全类型转换(它可以在失败时返回 null )3. break 终止循环的执行4. class 声明一个类5. continue 继续最近层循环的下一步6. do 开始一个 do/while 循环(后置条件的循环)7. else 定义一个 if 表达式条件为 false 时执行的分支8. false ...

2019-01-15 15:09:14 152

原创 谈谈 ABIS

一: 类型简介      很多人听到 ABIS 这个词,我想大多数的人开始的时候都不知道的吧,ABIS 翻译过来的意思是:Android 设备的 CPU 类型。 即如下 5 种类型1. armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.2 .arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galax...

2019-01-11 18:26:44 1134

原创 年终总结

   匆匆时光如流水,转眼即逝,2019 年已经到来,新的一年里,老弟先祝各位同仁工作顺利,事事顺心。   2018  年过的真快,通过这一年的不懈努力,在工作上也去取得了一定的成果,但是还存在一些不足,下面就是我这一年的工作总结。 一:工作总结  (1) 科大讯飞语音识别集成和使用  (2)腾讯叮当语音识别集成和使用  (3)阿里语音识别的集成和使用   (4)各大框架的...

2019-01-04 11:25:10 495

原创 Android 漏洞修复

1. 隐士 Intent 劫持 如果发现有隐士意图,至于要改为显示即可,启动 Service 时,使用隐士 Intent 启动  bindService(),系统就会报这个异常。 2. 未移除测试代码 打包的时候没有把关于日志打印的 Log关 掉,把相应的关闭即可。 3. activity ,Service BroadcastReceiver 组件暴露 如果组件不需要与...

2018-12-14 14:11:23 592

原创 浅谈 Json

       眨眼睛之间就来到了十二月了,一年过的真的是快的很,今儿个也没想到有啥好写的,突然想到前段时间弄的阿里语音识别里面的 JSON , 感觉 JSON  数据也是个很有趣的东西,所以针对它,我做了一个简单的调研的吧,下面就是我对 JSON 的个人理解。 一:什么是 Json 二:解析 Json 数据 三:Json 与 Xml 对比 四:解析时遇到的坑 ...

2018-12-04 10:15:52 239

原创 Tinker 热更新的使用

一:什么是 Tinker?   Tinker  是微信官方的 Android  热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。 二: 具体集成步骤(1) 添加依赖 1.  在项目的 build.gradle 中添加 tinker-patch-gradle-plugin的依赖    buildscript {    dep...

2018-11-29 17:06:04 484 1

百度唤醒封装方法以及 jar 包.zip

百度唤醒封装方法,以及百度唤醒 jar 架包,直接倒入项目就有使用,结合博客里面的代码直接使用即可。里面包含一整套的唤醒功能以及识别功能

2020-05-27

Archive.zip好东西啊

支持全部的 NDK 文件,还有怎么操作都详细的写出来了

2019-06-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除