Android开发
文章平均质量分 79
王瑜的csdn
安卓开发,希望能够多学习.向前辈学习
展开
-
Android Studio2.2配置MakeList使用cmake编译c文件
初次使用cmake来编译c文件在Android项目中,那个快感能传递到骨髓里,欲罢不能.只能说谁用谁知道.如果还没有使用,请赶快用一次,初次体验一共三部:第一:studio升级到2.2以后的版本,安装NDK,cmake工具第二:创建新项目勾选 Include C++ Support 选项。第三:一路下一步,安装运行项目原创 2017-02-21 21:59:50 · 3206 阅读 · 0 评论 -
Identifiers must have user defined types from the XML file. View is missing it
一次粗心大意的记录,大家引以为戒。Error:Execution failed for task ':compileDebugJavaWithJavac'.> android.databinding.tool.util.LoggedErrorException: Found data binding errors. ****/ data binding error ****msg:Id...原创 2018-04-26 14:46:51 · 3576 阅读 · 0 评论 -
recyclerview 实现带标题的Grideview 不嵌套
项目中需要实现微信钱包页面类似的布局,我第一次看到后觉得很容易,用recyclerview嵌套grideview就能实现,往回一想太麻烦,并且要写好多adapter和相应的点击事件。于是我想能不能只用recyclerview不嵌套能不能实现。在网上搜到一个神奇的方法解决了我的问题LayoutManager.setSpanSizeLookup(SpanSizeLookup loopup) pri...原创 2018-04-27 16:13:03 · 1754 阅读 · 0 评论 -
RxJava2 延时重试网络请求,任意重试次数网络请求,任意延时时间
项目中有个接口必须要上报成功,否则要进行重试,重试次数为9,重试时间为1,2,4,8,16,24,32,64,128,256,512,1024原创 2018-05-12 12:29:53 · 8090 阅读 · 4 评论 -
Android 中使用Protocol Buffer
宝宝其实是根据一老外的文章学习的,原文:https://medium.com/@elye.project/simple-android-protobuf-tutorial-with-actual-code-bfb581299f47本篇文章主要介绍Android中配置Gradle Protocol Buffer,及一个简单的使用demo,下篇文件讲解API在其中一个项目中遇到SharedPerfer...原创 2018-05-20 22:31:08 · 1744 阅读 · 0 评论 -
NoClassDefFoundError io.reactivex.Flowable
各路宝宝都看看这个异常:你的第一反应是啥?各种百度google,最后呢?还是没有解决。如果说我什么都没干就好了,你信不?宝宝遇到一奇葩情况,同样的代码,只是把网络请求注释掉后便没有了问题,public void requsetDataRetry(BaseRequsetReq req) { Observable.just(req) .subscribeOn(Sched...原创 2018-05-16 23:09:53 · 2448 阅读 · 4 评论 -
解析数据帧 android蓝牙数据帧解析 物联网数据帧解析2.0
请先参阅我的上篇文章:解析数据帧 android蓝牙数据帧解析 物联网数据帧解析本篇文章主要是针对数据帧解析而做的小工具,.本篇可以说是2.0版主要解决一个问题:把写死的截取位置变成动态获取的位置,能够做到即使修改协议帧也能少改代码,快速更改。例如原来写String subdata = data.substring(2,4) @Field(value=ORI,location=1)现在Str...原创 2018-05-24 08:51:15 · 1091 阅读 · 0 评论 -
android 自定义view 温度控制view
这个自定义视图是解决用户可以随意设置地暖温度而设置的。看起来很实(JI)用(雷),操作也很简单。作为码农,我们只管专心解决问题,我相信没有人会喜欢温度变来变去,就像上了青藏高原,我只想把核心的原理讲解一下。需要实现的功能:1。画表格 - 温度时间表2.手指在表格上按下,添加一个温度时间点,并把相邻的点连接起来3.已经画好的点可以再次拖动,拖动过程时时显示温度时间,每两个小时只能设置一个温度点4...原创 2018-06-29 13:23:41 · 1231 阅读 · 0 评论 -
RxJava2 Flowable解决异步回调
1项目中有个需求,假设有N个数据,格式为8位纯数字字符串("00015756"),2需要把N个数据按照尾号0-9分组排好。尾号为“0”的一组,尾号为“1”的一组...最多10组3在每一组之前添加新唤醒数据帧”AAAAAAAA“,在结尾添加新睡眠数据帧“BBBBBBBB”4按照0-9分好组的顺序,蓝牙把这些数据发送给硬件5每组中唤醒帧”AAAAAAAA“发完等待11s,(11s内硬件不回复任何内容)...原创 2018-06-18 14:30:32 · 6756 阅读 · 0 评论 -
android 使用Lambda java8 Lambda
一个致命的例外引发的学习。E / AndroidRuntime:致命例外:主 过程:com.testwifi,PID:15340 java.lang.NoClassDefFoundError:com.testwifi.activity.MainActivity $ 1 在com.testwifi.activity.MainActivity.initView(Main...原创 2018-07-01 11:55:22 · 710 阅读 · 0 评论 -
android中优雅的处理nullPointException(java8 Optional)
今天和大家一起使用java8中的Optional API解决nullPointException,先来看一段代码: public class Car { private Insurance insurance; public Insurance getInsurance() { return insurance; ...原创 2018-07-19 07:28:21 · 1695 阅读 · 0 评论 -
Rxjava 封装Socket 网络请求
1项目中接口需要使用socket网络请求,大概有十几个接口。之前用过rxjava简单封装过些简单的http请求的接口,现在也想按照那种思维模式老封装一下。总体思路是发送数据时传一个bean过去,接收时直接返回已经解析好的bean,用面向对象的方法编程。如果像以前一样一个工具类中写死好多socket请求的方法,这样耦合性太强,牵一发动全身。 所以使用rxjava 2.0小小封装一下。2:核...原创 2018-08-09 18:05:40 · 2265 阅读 · 0 评论 -
databinding新手 Execution failed for task ':app:compileDebugJavaWithJavac'
话说头一回使用databinding,删删改改不知道最后哪里写错了,编译可以通过,就是不能运行,而且报错不能定位信息。表示很尴尬,弄了一上午,终于找到了一个前辈的文章,发现和他的错一样,我就按照他的方法进行排查,首先我报的错误如下org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileD...原创 2018-04-21 13:31:50 · 8290 阅读 · 0 评论 -
java.util.concurrent.ExecutionException 'android.enableAapt2' is deprecated and should not be use
话说每次studio版本更新一次,都要捣鼓一天处理各种错误,我们很感恩google一直在快速更新,真是忙坏了那群大爷大妈。这次更新到了3.1也不例外。先说说这个错:如果你的配置是这样的:并且有如下的错Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception:...原创 2018-04-21 10:56:23 · 15384 阅读 · 0 评论 -
DataBinding 绑定Recyclerview及点击事件
最近在学习DataBinding,在这里记录下学习的轨迹收获:1代码解耦。2少些很多没有营养的代码,美观度高!遇坑:1官方文档 https://developer.android.com/topic/libraries/data-binding/index.html#listener_bindings 写的真是简单,只提供码片段,需要结合博客和别的资料一齐看,才大概明白其中的奥妙。2不容易定位错误...原创 2018-04-22 22:08:28 · 6368 阅读 · 0 评论 -
Couldn't load native-lib from loader dalvik使用cmake编译
出现这个 Couldn't load native-lib from loader dalvik情况是因为没有在apk中找到相应的.so文件,我看了些文章总结原因一共只有两种可能:1:真的没有这个.so文件2:文件名写错了判断原因:1使用Build-Analyze APK菜单工具,选中自己的apk真的没有生成.so文件,正常的应该是这样,有一个lib文件夹,里面原创 2017-03-03 11:40:32 · 430 阅读 · 0 评论 -
Android自定义组合控件
由于项目中使用到一些重复并且不太复杂而且可以复用的控件组合,不停的粘贴复制也挺烦人的,并且布局文件写的很low,于是乎,激发我内心对美的追求和欲望,做一个优雅的码农!大家看下面的情况 这个场景是不是很熟悉,而且很多这样的情况,左图完全可以linearLayout里面放textview,edittext,右图可以linearLayout里面放textview,textview.这样下来,原创 2017-02-28 22:17:34 · 404 阅读 · 0 评论 -
Couldn't load native-lib from loader dalvik使用cmake编译
出现这个 Couldn't load native-lib from loader dalvik情况是因为没有在apk中找到相应的.so文件,我看了些文章总结原因一共只有两种可能:1:真的没有这个.so文件2:文件名写错了判断原因:1使用Build-Analyze APK菜单工具,选中自己的apk真的没有生成.so文件,正常的应该是这样,有一个lib文件夹,里面原创 2017-03-03 11:14:42 · 547 阅读 · 0 评论 -
Android Intent获取不到值
今天遇到了一个奇葩的情况,明明已经putExtra,并且debug时,intent确实是有值的,但是跳转到B Activity后通过getIntent(),getStringExtra()竟然没有值.百思不得解.这个是B Activity中,获取不到pages的值,debug显示为null同样实在B Activity界面中,我却能收到在A Activity原创 2017-04-15 10:08:38 · 2247 阅读 · 1 评论 -
lib/arm64, /vendor/lib64 couldn't find " .so"
项目中使用图片压缩用的是jni用c代码进行压缩,以前用的好好,突然间测试告诉我在魅族note上崩溃,查看错误日志如下: FATAL EXCEPTION: mainjava.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.mclm.business_sp原创 2017-05-25 09:17:52 · 4292 阅读 · 0 评论 -
EditText限制 只能输入0.00 -100保留两位小数
public class MydoubeChangeListener implements TextWatcher { private EditText editText; public MydoubeChangeListener(EditText editText) { this.editText = editText; } @Overr原创 2017-04-26 10:28:12 · 1826 阅读 · 1 评论 -
环形手势控制条
项目中需要用到环形控制条,查找了资料然后,修改了各位网友的成果,最后达到我们项目中的要求.先看看效果.主要参考文章:http://blog.csdn.net/alijiahua/article/details/51474580 在此感谢alijiahua的博客al原创 2017-06-18 13:55:57 · 426 阅读 · 0 评论 -
解析数据帧 android蓝牙数据帧解析 物联网数据帧解析
话说我们硬件部门修改了通信协议,我们不得已需要改动软件。当我看到需要改的代码时我傻眼了,请大家仔细看String data=”565224CA5FF298AAEE775369874178456123784561EEEEEEEEEEE248526549856784561239845613298456123AACCFF45612398546DDCC2398456123985623856...原创 2018-02-24 22:45:19 · 1329 阅读 · 0 评论 -
蓝牙组帧 优雅组帧 物联网组帧 Android蓝牙组帧
蓝牙发送数据需要组成16进制数据帧,我们今天来讲一种优雅高效到组织放式.没有对比就没有伤害,下面我们来伤害一下原始组帧:byte[] b = new byte[] { (byte) 0x68, bTypes[0], (byte) frames[0], (byte) frames[1], (byte) frames[2], (byte) frames[3], (byte) frames[...原创 2018-02-26 11:46:56 · 581 阅读 · 0 评论 -
把枚举替换成注解 Enum替换成Annotation
随手记录下新鲜的Annotation知识,google官网说Enum类比普通静态常量要消耗2倍内存, 所以现在把枚举改成注解.官方说法如下1:首先定义用到的静态常量public class Constants { public static final String TYPE_A = "1"; public static final String TYPE_B = "2"; ...原创 2018-03-06 09:26:03 · 1945 阅读 · 0 评论 -
android studio工具类打jar包 任意目录打jar包 任意文件打jar包
项目中需要给别人提供jar,但是在网上搜的都是把整个moudle打包的,这个太不科学 了,我只要打包几个类或者某个package下的所有文件。自己研究了下算是解决了。1进入 project\build\intermediates\classes\release 文件夹2 在release目录及其子目录,只保留需要打jar包的目录,子目录和文件,剩下的全部删除3:cd D:\AKE\workspac...原创 2018-03-13 13:17:10 · 1752 阅读 · 1 评论 -
constraintLayout 属性 使用
1:<Barrier> 栅栏 控制view的相对位置相对位置,相对于目标id的值为end,left,right,top,bottom,start,endapp:barrierDirection="end"目标view的id,可以是多个id中间用,分割,不用写@+idapp:constraint_referenced_ids="tv1,tv2"2:<Group> 分组,可以控制多个view显示隐藏目标view的id,可以是多个id中间用,分割,不用写@+idapp:constraint_ref原创 2018-03-08 11:26:18 · 657 阅读 · 0 评论 -
recyclerview 实现viewpager grideview分页效果 GrideSnapHelper
为了逼自己学习,所以瞎折腾一下,让自己张点见识。项目中原来使用的是ViewPager + GrideView 实现的卡片滑动,代码挺多的,我非得想改造成用recyclerView实现,话说折腾成功。先看下效果。每页三列,滑动停止后自动找到最近的一页停下。大多数人都是直接实现SnapHelper,但是我武功没那么高强,况且只要能解决问题的同志就是好裁缝!对于那些没有问题制造困难也要解决问题的好同志,...原创 2018-03-30 22:18:04 · 1692 阅读 · 2 评论 -
用Rxjava2解决Token过期 自动重新请求 ,网络请求队列
小项目中为了减小体积和精简代码,没有使用rxJava retrofit okhttp这样的组合,但是依然要解决一个问题就是Token过期问题,这个并不是什么很难的问题,以前是使用别人写好的框架,今天比葫芦画瓢自己用rxjava 解决token过期问题。网络请求部分未封装,你可以随意用任何框架请求 。需求是同时N个网络请求,(一个请求也适用。)1,2,3一齐发过来,如果1成功了2,3没有成功我需要请...原创 2018-04-14 21:25:45 · 3260 阅读 · 0 评论 -
android 蓝牙完美解析协议 蓝牙万能通讯协议
在一次聊天中,突发奇想,解决了一个蓝牙通讯的协议问题。如果有需要制定硬件和App交互协议,同样可以参考本文。问题概述:1:多套协议,多套解析蓝牙通讯时都会定义自己和硬件的通讯协议,不同的硬件,协议也不一样,对应APP解析也不一样2:数据改变,协议改变协议一般是不会变的,但是会变的情况还是很多的,例如需求增加,硬件改动,都会造成数据变更,进而导致协议变更,导致硬件组帧改动,导致手...原创 2018-08-15 18:50:57 · 11925 阅读 · 3 评论