Android
飞翔的易拉罐
Android & QNX 应用软件开发
展开
-
Android 官方RRO机制Demo示例 - 不改一行源码实现动态换肤
前言最近参与了一个OEM的项目研发,其中有一个需求是实现主题功能,类似华为手机上的主题应用。从云端下载主题包然后换肤。实现过程中发现Google有一套RRO的动态资源加载机制,比较符合我们的要求,于是乎开始了踩坑。由于网上很多RRO的文档都是从一个地方转载的,并且也没有上传Demo,也没有介绍Android10,11 之后RRO机制有哪些变化,因此写了这篇blog,对自己的调研做记录的同时,也希望能给你提供一些帮助。先来看下Demo效果:Demo演示了在Activity打开时启用/禁用资源包(界原创 2020-12-13 18:44:04 · 1928 阅读 · 2 评论 -
Android应用角标处理方案
前言最近参与了一个系统应用开发的项目,负责电话模块,其中有一个功能需求是在收到未接来电时,在systemUI上显示角标,显示未接来电数,并在打开通话记录后,清除掉未接来电。查了一些资料后,记录下目前比较常用的角标方案。内容Android原生支持角标,是通过Notification实现的,但是没有数字;需要实现带数字的角标,需要厂商自己定制。常见的方案系统厂商,可从以下方案入手思考方案做法优势劣势FW自行监听通知定制Notification,添加msgCount参数;自定原创 2020-10-12 15:35:42 · 1918 阅读 · 0 评论 -
Android动画(三)-动画框架
概述上两篇介绍了一些动画基础 Android动画(一)-视图动画Android动画(二)-属性动画但是开发中为了开发效率,我们通常是使用一些三方的库,有前辈已经封装了很完善的动画库,我们学习一下直接用,使用中还能探寻框架作者的设计思路,事半功倍,何乐不为~1 常见动画框架1.1 AndroidViewAnimationsNineOldAnimations一个老牌动画开源库了,JakeWharton大原创 2017-08-24 09:59:13 · 308 阅读 · 0 评论 -
Android通讯-Socket
概述开发中通讯这块也是必不可少的,无论什么产品都离不开与后台的交互。在数据通信中我们经常使用的是Http,json,但是也有许多场景中需要用到长连接,广播包等需求,今天开始研究下项目中的数据通讯技术。通讯协议先来简单说下通讯协议,TCP、udp、http、rtsp、xmpp、icmp、smtp等等这些都是协议,那么什么是协议?就是大家普遍遵守的一套规范,通讯协议就是在数据传输过程中对数据格式,传输速原创 2017-08-29 17:49:58 · 405 阅读 · 0 评论 -
Could not resolve com.android.supportsupport-annotations25.4.0
概述最近在做客户项目的维护工作,才进项目,那边的同事不知道要干啥把Support升级到了25.4.0,我给看懵逼了。 Sdk manager 都找不到的。 不信可以试试androidTestCompile "com.android.support:support-annotations:25.4.0"解决办法查了无数资料,有以下几种答案1 降低版本吧,你这个太高了确实一般情况下降一个现行的版本就原创 2017-10-13 16:01:54 · 4915 阅读 · 2 评论 -
Android Rxjava2升级(踩坑)笔记
Rxjava2 升级(踩坑)笔记前言最近接触到别人代码的时候看到他们RxJava写的和我的不一样。Single、Completable、Disposable 什么不知道,CompositeDisposable这又是什么鬼??doAfterTerminate()这个方法好可以再事件结束的时候调,但是我的代码里没这个方法!最终发现,Rxjava升级了。本文也只对新出现的变化做记录,没有rx原创 2018-01-15 16:41:12 · 1734 阅读 · 0 评论 -
Android 8.0 升级笔记(适配图片、通知栏、ContentProvider、Receiver)
Android 8.0 升级笔记前言Google 在2017年就发布了Android 8.0,并且强制AppStore上得应用都要升级,国内得不晓得。为了防止出现之前升级6.0 得时候权限问题导致Crash这种情况得发生…这次很小心得去看了Google得升级意见,小伙伴们可以自行去看(https://developer.android.com/index.html)。 我大致记录以下...原创 2018-01-30 17:58:23 · 3191 阅读 · 0 评论 -
Rxjava + Room java.lang.AssertionError: No values (latch = 1, values = 0, errors = 0, completions =
Rxjava + Room java.lang.AssertionError: No values (latch = 1, values = 0, errors = 0, completions = 0)出错:Insert数据后去Query数据 原因:Rx和Junit 不在一个线程里,insert需要时间,Query没等insert成功就查数据,所以错误Schilder 还不能帮你把线程...原创 2018-05-28 19:02:03 · 959 阅读 · 0 评论 -
Android 数据库-Room
前言最近项目中用得数据库框架 “ActivieAndroi” 由于作者停止维护了,它在升级到8.0之后会发生Crash,因此,我们准备给项目换一个数据库。主要考虑了Relam,Room,GreendDao 三个开源得数据库框架。内容RoomGoogle 支持的ARCH框架推荐;使用原生SQL;注解使用网上一半教程都是在翻译官方文档,有兴趣的可以自己去看下官方给...原创 2018-06-12 17:01:59 · 552 阅读 · 1 评论 -
Android 数据库-Realm
前言接上一章Room,Leader说Room作为一个新框架才出来不久,坑应该不少!(无法反驳- -~!!)所以我们采用Realm,并且这玩意三端都可以用(神特么,以为写一套代码适配三端??),总之一堆理由,So,抱着对学习无比的热爱和对知识的渴求,(受不了Leader BB被逼换库- -!)来填一填Realm的坑。内容Realm开源;效率高;跨平台,Android、IOS、前端...原创 2018-06-13 10:34:02 · 600 阅读 · 0 评论 -
使用Google服务 编译时遇到的问题
问题What went wrong: Execution failed for task ‘:app:processXXXXDebugGoogleServices’. Please fix the version conflict either by updating the version of the google-services plugin (information ab...原创 2018-06-08 11:10:57 · 1194 阅读 · 0 评论 -
java.lang.IllegalArgumentException No view found for id 0x7
java.lang.IllegalArgumentException No view found for id 0x7布局上找不到这个View,看下ERROR的地方,可以看到是因为Container找不到因此报错了。 从布局入手,参考了很多文章主要分为以下两种原因1 Fragment 嵌套了 Fragment例如:FragmentA 里面 嵌套了一个FragmentB如果在F...原创 2018-07-31 16:12:12 · 8119 阅读 · 0 评论 -
Android 自定义跑马灯 实现超长文本,滚动完当前在继续切换下一条
1 前言最近项目上有一个跑马灯的需求。需求:无限滚动,可以自动切换下一条如果当前的文本超过一屏,则滚动完当前再切换下一条第一点很简单,但是第二点就比较蛋疼了,看了网上很多轮子都没有太合适的,于是自己写了一个。 记录总结一下Android 跑马灯的实现方式,和我自定义跑马灯的思路。源码已托管到Github:https://github.com/ieewbbwe/Marque...原创 2018-08-07 18:40:16 · 2768 阅读 · 0 评论 -
使用Android Studio,如何释放C盘空间?
使用Android Studio,如何释放C盘空间?前言新买的电脑美滋滋,C盘固态盘有60G剩余,下了个AndroidStudio 开始肝项目!!过了一段时间发现C盘只有9G了!标红了,很难受!知道运行中一些配置文件会默认放在系统盘,这也是系统盘为啥一直变大的原因,Studio 首当其冲成为怀疑对象!于是,网上搜了一下,还真是这货,赶紧优化,优化后释放了 10G 空间!顺便记录下内容主要...原创 2018-11-12 11:26:54 · 13452 阅读 · 11 评论 -
Kotlin 学习笔记
前言要保持一颗学习的心,才能厚积薄发。Kotlin已经出来有一段时间了,市面上也有一些Android开发开始吃螃蟹,褒贬不一。官网标榜的KT能让代码更加简洁,开发效率更高,吸引力也很大。抱着充实自己的态度,姑且学习一下!这篇文档再18年3月的时候就创建了,中途各种事情,自己也有些拖拉一直没有继续写,趁着现在有点时间,把笔记完善一下,也可以给自己一个参考。内容将从如何搭建环境,语法糖,最后用...原创 2019-01-17 15:11:04 · 225 阅读 · 0 评论 -
Caused by: org.gradle.api.GradleException: Compilation error. See log for more details
e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:class android.support.v4.app.FragmentActivity, unresolved supertypes: a...原创 2019-10-08 11:24:24 · 6068 阅读 · 0 评论 -
Android通讯-webSocket
概述上一篇简单的认识了Socket以及他的使用,在学习过程中看到了WebSocket的身影,于是乎百度了一把,这货也可以做全双工的网络通讯,而且是html5提出来的新东西!程序员嘛!就是要对新的东西充满了好奇!WebSocket引用API里面的一句话,WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。全双工:简单理解为C,S端可以相互发送和接收数据。WebSoc原创 2017-09-04 18:02:32 · 21619 阅读 · 10 评论 -
Android动画(二)-属性动画
概述上一篇主要介绍了ViewAnim和帧动画,篇幅有点长,另起一篇。上篇介绍的两种动画开发中用到的不多,主要还是本篇的属性动画使用比较广。1 补间动画1.1 Property Anim开发中Property Anim使用比View Anim要更为广泛,主要还是出于刚刚提到过的View Anim执行之后View的位置没有变化。 有的时候我们确实是需要改变View位置的。1.1.1 Object An原创 2017-08-22 16:35:37 · 455 阅读 · 0 评论 -
RecycleView 的简单使用
RecycleView 的简单使用原创 2016-08-10 12:47:38 · 603 阅读 · 0 评论 -
RxJava学习笔记(三)自定义操作符
RxJava学习笔记(三)自定义操作符概述这一章介绍Rxjava如何自定义操作符。首先要明白的是我们为什么要自定义操作符?rxjava提供的操作符无法解决问题为了保证rxjava的链式调用规则秉着钻研精神如果你的操作符是被用于创造一个Observable,而不是变换或者响应一个Observable,使用 create( ) 方法,不要试图手动实现 Observable。另外,你可以按照下面的原创 2016-12-16 13:53:23 · 402 阅读 · 0 评论 -
RxJava学习笔记(一)概念
RxJava 学习笔记(一)概念Rxjava 从去年开始就有耳闻,在各大开源项目中也可以看到有使用他的,各大牛也说他好用,既然大家都说好,具体好不好我们自己学着用一下就知道了,刚好这段时间项目闲下来就来学习一下RxJava。1 是什么同样,在用一个东西之前,要先知道他是什么东西。“RxJava is a Java VM implementation of Reactive Extensions: a原创 2016-12-05 17:35:20 · 624 阅读 · 0 评论 -
Android热修复技术实现
热修复学习思维笔记—基于Tinker概述热修复去年就开始火了,主要解决的是APP在更新时需要重新下载整个APK的不友好用户体验。比如,线上的应用出现了一个严重bug,开发人员修复之后还要上传到市场用户重新下载安装,大多数用户都不太愿意再去重新下载,即使是微信,支付宝这种应用开发出新功能想要推广,也不得不花大力气让用户更新版本。原创 2017-02-22 18:28:21 · 334 阅读 · 0 评论 -
CardView兼容问题
概述开发中以前用的编译版本是23,最近升级到了25.3.0,于是就出现了这个蛋疼的问题。java.lang.NoSuchMethodError: android.support.v7.widget.CardView.setShadowPadding原创 2017-05-16 10:56:23 · 3086 阅读 · 0 评论 -
Android打aar包及其引用相关问题
概述最近手上有个项目是开发整个APP的部分功能,并以库的方式提供给主工程调用。开发中遇到了aar引用的一些问题,分享给大家,欢迎讨论。原创 2017-05-16 10:38:18 · 1657 阅读 · 1 评论 -
Android 打包、资源合并问题 "Manifest merger failed with multiple errors" and "Could not expand ZIP"
概述昨天成功制作了一个mavenLocal,成功把sdk给了客户,但是由于我们lib工程比较杂,客户的项目也比较杂,就出现了很多问题,今天解决完这一大票问题后,抽个空来总结一下。主要就是apk的打包,资源合并问题。原创 2017-05-18 11:32:15 · 4337 阅读 · 0 评论 -
RxJava学习笔记(二)操作符
RxJava 学习笔记(二)操作符1 常见RxJava操作符介绍Rxjava中的操作符提供了一种函数式编程的方式,这里列举一下个人感觉用的比较多的操作符。并列举一些可能用到的实例。本文适合于快速上手,熟悉RxJava常见操作符的使用1.1 创建操作符1)Create通过调用观察者的方法从头创建一个Observable。这个没啥好说的,最基本的一个。但是2.0之后好像有点变动,以后再看。2) From原创 2016-12-15 17:48:13 · 579 阅读 · 0 评论 -
集成类项目小结
概述该项目是我方参与整个APP的部分模块开发,将开发好得功能以SDK的方式提供给APP调用。开发任务比较简单,主要问题出在sdk集成上面,下面记录开发中遇到的问题,还有部分关键技术。原创 2017-06-20 11:55:49 · 1492 阅读 · 0 评论 -
原生应用接入ReactNative
概述最近在看ReactNative,这玩意一份代码可以编译成IOS、Android、WEB前端 三个平台上运行的程序。挺方便,但是项目不可能一下子全转为RN开发,于是就需要原生里面嵌入RN代码。原创 2017-07-03 09:35:44 · 557 阅读 · 1 评论 -
Android测试-monkeyRun
概述昨天做完了单元测试,又被要求跑monkey,默念客户最屌,再去查查资料开搞。什么是monkey测试?猴子测试,因为猴子只会乱点,这个测试模拟的就是在屏上乱点,乱按按键输入,检测多久会有异常。自动化测试的一种。老司机们自己去看文档:https://developer.android.com/studio/test/monkey.html有哪些使用方法?先跑起来试试,连接一台Android设备,并输原创 2017-07-21 17:34:26 · 1060 阅读 · 1 评论 -
Android测试-unitTest
1 概述去年的一个电商的项目做完了,已经上线了,客户回来找我们做单元测试,性能测试,安全性测试,一堆测试项。我的内心是崩溃的,项目都上线了,隔了几个月了,项目组都换了两批了。没办法,客户是上帝,于是研究了一下Android目前的一些测试规范,记录一下吧。2 为什么要做测试理清代码逻辑,让程序更加健壮,方法变更后跑一遍测试,若结果正确则证明没有影响到别的方法,更快的排查错误。测试分类:单元测试 测试原创 2017-07-19 18:32:56 · 1792 阅读 · 1 评论 -
用MVP模式开发Andorid应用
用MVP模式开发Android应用概述MVP去年就很火了,但是担心掌握不好一直没有用。直到这一次面试面试官问了这个,当时对这个模式理解的不是很好,于是回来补习了一下。学习之后我们要搞清楚几个问题:1 什么是MVP模式?2 他的出现解决了什么问题?3 如何搭建一个MVP应用?4 使用他会造成哪些新的问题?1 什么是MVP模式是一种软件架构模式,为了解耦,减少代码冗余。Model 依然是业务逻辑和实体模原创 2017-07-10 11:06:22 · 507 阅读 · 0 评论 -
Android知识图谱
概述每一门技术和知识,都要形成系统,有一整套的逻辑架构,才能灵活使用,掌握的更加深刻。Android开发两年了,整理一下零零散散的知识点形成了这张图谱。原创 2017-08-24 17:45:21 · 351 阅读 · 0 评论 -
Android动画(一)-视图动画
概述Android开发中一直会遇到各种动画效果,特别是如果老板和UI妹子很扣这块的话。这也是每一个Android程序员无法绕过的一块内容,目前项目不忙,终于有时间来系统的整理下Android中的动画。Android中动画分为:帧动画(Frame Anim),像幻灯片那样逐张播放补间动画(Tween Anim),比如对一个TextView执行一系列简单变换(位置、大小、旋转、透明度)还有属性动画原创 2017-08-22 16:18:39 · 323 阅读 · 0 评论 -
The specified size exceeds the maximum representable size.
The specified size exceeds the maximum representable size.最近开发中遇到一个很蛋疼的问题,andorid studio中由于方法数超了,我启用了:defaultConfig { multiDexEnabled true}这样由于方法过多JVM在运行的时候由于heap限制,编译的特变慢,一直处在 Gradle run building原创 2016-07-28 12:43:43 · 14574 阅读 · 3 评论