
Android
文章平均质量分 73
geanwen
天道酬勤
展开
-
Android RadioButton、CheckBox、Switch在低于API 21机器上显示异常,button设置为null无效(AndroidX升级导致)
测试突然提了一个机型兼容的BUG,在4.4的某个华为机器上RadioButton显示异常,查看其他页面,发现CheckBox也出现同样问题。下面截了个图:在这个设备上突然出现了黑色圆圈,这是radiobutton原始的样式,checkbox也是出现了系统默认的样式;不耽误大家时间,先说结论和办法,然后在分析一下:问题原因是升级到AndroidX导致的在API21以下的机型会出现,测试了几个出现的都是华为的设备。但是androidx1.0.0是正常的,androidx1.1.0的问题;原创 2020-06-12 10:51:00 · 1325 阅读 · 2 评论 -
Android 内存泄漏定位与解决
开发中内存泄漏的问题一直是比较棘手的,写代码只要稍不经心就会出现侧漏,自己都不知道在哪侧漏的,最后导致翻车。app做完了,一经过大量测试,不知不觉就崩溃,一看日志-----OOM(噗~~)。最近看了一些博客和书籍还有视频,简单总结了一下,侧漏的发生和原因。下面我先举个前些天看视频的小栗子,然后下面再贴出一些概念。下面的方法可以粗略的检查出activity是否有侧漏。原创 2017-09-26 14:48:55 · 1192 阅读 · 0 评论 -
Android 动态权限申请 Permission4M
转自郭林公众号的jokermonn投稿:链接转载 2017-09-11 08:58:07 · 2321 阅读 · 0 评论 -
Android 各个知识点整理
这篇博客留着记录一些比较深入和思路清晰的大神的文章链接。也是在一边学习一边整理,持续更新中,也在此感谢那些懂得分享的大神们: 1、 事件分发流程http://www.jianshu.com/p/e99b5e8bd67b2、view的渲染机制http://www.cnblogs.com/ldq2016/p/6668148.html3、动画原理,底层如何给上层信号任玉刚(《Andro...原创 2017-10-18 09:07:20 · 5828 阅读 · 0 评论 -
Android 7.0系统调用相机崩溃
按照原来代码,6.0以上申请权限,有了权限调用相机流程在今天测试的同事给我打破了。同事拿着个7.0的手机来我旁边,一点拍照就崩溃了。当时有点摸不到头脑。查看log,抛出了FileUriExposedException异常。查了半天(半年没写android项目了,一直在做Xamarin.iOS的开发),原来7.0之后你的app就算有权限,给出一个URI之后手机也认为你没有权限。直接贴原创 2017-03-21 15:25:05 · 3756 阅读 · 7 评论 -
Android 低功耗蓝牙的多设备连接与数据接收,简单实现
项目的一个功能,蓝牙多连接。应用同时连接多个设备,等待接收数据,处理后显示图表。在这之前我没有搞过蓝牙方面的东西,只能从基础开始边看边干。最开始不知道,看的是传统蓝牙的连接与传输,几天过后,发现与低功耗蓝牙不一样啊,又针对低功耗蓝牙开始找资料。低功耗蓝牙支持的api最低是18。基本思路:低功耗蓝牙连接分两种,一种是作为周边设备,一种是作为中心设备。因为需求是多连接,那我们就按照创建一个中心设备的做...原创 2017-06-23 15:52:28 · 14269 阅读 · 6 评论 -
Android状态模式实践
越来越多的应用登录操作不是进入的必须条件了。很多都是在一些必要的操作的时候才会判断登录,例如评论,转发,支付等功能。大部分童鞋应该都是在点击对应按钮的时候去判断登录的状态吧:if(已登录){ }else { }这样不好,其实大家都知道不好,每加一个按钮或者需要这样的入口你就需要写一次上面的代码。原创 2017-05-02 19:34:47 · 704 阅读 · 0 评论 -
开源项目收藏
逛github发现个好东西,有位好心人把微信和支付宝支付简化了。点这里点这里大概看了下,使用相比于正常支付还是很简单的。原创 2017-09-29 18:26:58 · 386 阅读 · 0 评论 -
Android GreenDao使用(二)增删改查
上一篇文章写了greendao的基本使用,包括集成,创建表,封装了操作对象。这篇介绍下基本的增加改查操作。首先新建助手类来统统管理操作:/ ** *完成具体对某一表表的具体操作,ORM操作是对象 *由创建于2017/4/6。 * /公共类DataBaseHelper { 私人DaoManager daoManager; public DataBaseH原创 2017-04-11 10:35:01 · 3216 阅读 · 0 评论 -
MVVM RecyclerView ItemBinding----从此不写适配器
一个月没有写博客了;一个月时间里将以前的两个个项目MVVM Databinding搭配MVC结构改成了MVVM结构;使用ViewModel处理业务逻辑,Activity只负责UI的处理;使用组件化方式将两个项目合并;本篇文章不详细说明组件化,关于组件化文章很多,具体问题再写一篇记录组件化;过程中遇到很多的问题,其中要说的就是从以前RecyclerView搭配Adapter说起;原创 2018-02-05 11:26:36 · 6972 阅读 · 8 评论 -
Android WebView Video播放.mp4视频失败 其他端正常---视频编码问题
Android通过WebView加载网页,网页中有Video标签去播放视频,代码不复杂,设置webview的一些属性之后loadUrl即可。但是,昨天,我的WebView失效了,网页中的Video标签播放不出来了。但是iOS和微信端是正常的,一下子血液上涌,我按照正常的逻辑想,一定是我WebView的设置哪里少了。国内外网站,从百度一下到微软必应到google到stackoverflow走了一大圈...原创 2018-05-08 10:34:50 · 11402 阅读 · 1 评论 -
Android adb 常用命令记录
方便以后查询$ adb version --查看adb version,一般用来瞅瞅adb全局配置好没有;$ adb devices --查看连接的设备,返回的是一个设备列表;$ adb -s "上面设备列表返回设备的码" shell wm size --运行查看设备的像素信息 返回类似这种信息:Physical size:1200x1920;$ adb root...原创 2018-05-30 10:32:20 · 1920 阅读 · 0 评论 -
Android 差异化打包
很多天前前项目有个新的需求:应用的包名、应用名称、引导页、某几个界面的图标。。。。都需要根据不同的应用进行修改。一开始没想那么多,打完包交付,直接git拉了一个分支,手动一点点改上述的需求。很快,不到半小时搞定。过了几个月一次迭代之后有需要改了,当时心里这个草泥马多的数不过来了都。解决方法,利用Gradle的productFlavors实现差异化打包:直接贴一张完整的图,慢慢讲:这是在app.gr...原创 2018-06-06 21:56:57 · 2335 阅读 · 1 评论 -
Android AR ---HelloAR(用的EasyAR 免费版)
前些天看见一个demo,扫描特定的形状,屏幕上会出现对应的小娃娃做相应的动作(3d的,不管你屏幕怎么动,他都是在固定的位置)。这就引起了我的好奇心,查了半天,最后找到了一个,叫EasyAR的。下面是他们的官网:http://www.easyar.cn/老套路:邮箱注册账号,登录进去之后,可以看他的文档。或者是Android开发者可以看我下面的套路去运行她的demo(没什么要原创 2017-08-31 17:37:47 · 13141 阅读 · 5 评论 -
Android okHttp拦截请求头和响应头
先给大家推荐一个开源项目:点这里这是一款基于网易云音乐UI,使用Gank.Io及豆瓣api开发的符合Google Material Design的Android开源项目。项目采取的是MVVM-DataBinding架构开发,现主要包括:干货区、电影区和书籍区三个子模块。我也是看了这个开源项目决定新项目框架使用MVVM DataBinding 和Retrofit的。还是感谢这些无私奉献的原创 2017-03-04 16:38:19 · 8178 阅读 · 0 评论 -
Android 强大的Picasso,自定义图片效果
android Picasso图片自定义效果原创 2016-08-26 18:20:03 · 3413 阅读 · 0 评论 -
Android 百分比布局(Percent Support Library)
Android百分比布局原创 2016-12-28 11:22:55 · 2214 阅读 · 0 评论 -
自定义Dialog,多处方便的使用
开发中经常会遇到这样的问题: 自定义了一个弹出窗口,窗口上面的提示信息还有按钮的字都是固定的,换一个地方这些提示信息就不适用了.自己写了一个很简单的,每次实例化新的dialog时,只需要将文字传过去就好了. 与大家分享一下,能力有限,有问题的地方还望朋友们帮忙指正,谢谢. 首先自定义样式,两句话,相信不用多说了吧.style name="Di原创 2015-12-12 19:57:35 · 1157 阅读 · 1 评论 -
Android 多渠道打包基础(友盟)
Android 友盟多渠道打包原创 2016-12-28 12:09:45 · 718 阅读 · 0 评论 -
Android Handler正确使用姿势
Android Handler正确使用姿势原创 2017-01-08 15:14:02 · 14059 阅读 · 1 评论 -
Android WebView访问网站携带登录认证Cookies和动态自定义的cookies
。最近项目几个页面要复用微信程序的网页但是需要调用微网站登录接口,返回Cookies,网页流量访问需要的网页的时候携带。并且还需要几个其他的动态改变的Cookies,目的是根据这几个动态自定义Cookies来决定网页的内容。如果不传,则显示最原始的网页。下面一步一步来记录:第一步先调用微信端登录接口,获取默认的三个Cookie,即接口的响应的报头中拿到这个操作自己找个合适的地方·进行:List &...原创 2017-03-19 11:24:28 · 3929 阅读 · 0 评论 -
Android 微信支付,授权,分享回调区分记录
我们做项目中避免不了和微信打交道,其中最常用的也就是授权登录与分享和支付了。本篇文章记录这三个功能同时使用的时候,回调怎么来区分。因为每个功能都有自己的回调状态。前期集成与发送,资料很多了就不在这里记录了。接收回调首先要写一个WXEntryActivity,实现IWXAPIEventHandler接口。activity的oncreate方法中实例化IWAPI对象:private I原创 2017-03-19 16:46:49 · 3210 阅读 · 0 评论 -
Error:A problem occurred configuring project ':app'. > Could not resolve all
编译运行时报错:Error:A problem occurred configuring project ':app'. > Could not resolve all打开peoject的gradle文件检查:allprojects { repositories { jcenter() }}是否在,不在的话添加上再次编译。原创 2017-03-22 13:01:40 · 12757 阅读 · 0 评论 -
Android databinding RecycleView item 子控件点击事件
记录使用databinding遇到的小问题。前面先介绍一下简单用法,在引出问题。首先recyclerview中会用到ViewHolder,下面列出一个通用bindViewholder:public class BindingViewHolder extends RecyclerView.ViewHolder { private T mBinding; public原创 2017-03-13 17:21:56 · 10031 阅读 · 0 评论 -
Android 状态栏处理三种方式
记录三种对状态栏处理的方式。只对android 4.4版本以上有效果。第一种:全屏显示,屏蔽掉状态栏,一般是应用查看大图片或者闪屏界面应用。很简单,直接定义style: @color/colorTheme @color/colorTheme @color/colorTheme true 然后在Manife原创 2017-03-04 16:07:05 · 3158 阅读 · 0 评论 -
Android 在string.xml中使用标签
项目中经常会出现下面的情况,一些静态的文字,样式不统一:1.注册代表您同意《xxx服务协议》。2.Q:xxxxxxxx;A:xxxxxxxxx;。。。。。上面列出两种情况大家想在界面中作出这种样式有什么好的办法么。用两个textview来完成么?nonono,如果现在是:注册代表您同意《xxx服务协议》。哈哈哈哈,再来一个《xxx服务协议》咋办?实际项目原创 2017-05-15 17:52:30 · 2644 阅读 · 0 评论 -
Android databinding xml中处理数据与控件绑定
studio对mvvm支持的也在不停的更新,但是还是有些问题没有解决,比如说:xml中加载图片编译时会爆出警告,xml中设置数据有几种情况没有提示,编译时xml中出现错误并不会定位到错误的位置,等一些问题。我相信这些问题很快会解决,现如今看mvvm还是很不错的。我接触和开始使用mvvm是半年多前,当时真的只是为了省略findViewById(哈哈),经过这几个月的项目,慢慢才认识到mv原创 2017-05-07 14:55:24 · 5113 阅读 · 1 评论 -
Android GreenDao使用(一)创建数据库
使用GreenDao已经好久了,不知不觉已经更新到3.x版本了。记录一下使用基本方法:1.先在app目录下的main文件夹下新建java-gen目录:注:一会的java文件指定生成在这个目录下, 当然这不是必须的,你可以自定义目录,这样做的目的是,目录结构清晰等这那的。2.在app下build.gradle中指定识别java-gen,顺便倒入greendao依赖:com原创 2017-04-10 11:55:54 · 4942 阅读 · 0 评论 -
Android GreenDao使用(三)数据库升级
本人用的greendao版本是3.2.2。前两篇介绍了greendao的基本用法,今天写篇数据库升级的。首先贴出热心大神封装greendao升级的地址:点这里greendao的数据库那些dao文件或者是bean文件都是我们自己新建的java工程生成的,这个在上篇博客讲了。我们要升级数据库,说明我们的表有字段变了,或者增加了表,或者删除了表。我们的数据库版原创 2017-06-02 14:28:18 · 4651 阅读 · 3 评论 -
对http和https简单学习记录
本文是对http和https简单的理解,也是看博客看书看视频后的笔记吧。内容比较少,以后会继续扩展。HTTP使用过的网络库:URLConnection HttpClient OKHttp 它们都封装了HTTP Request的请求。我们使用时只需要传入进url,请求方式,以及相应的参数和数据。现在看一下HTTP Request协议格式:原创 2016-08-31 20:39:46 · 1223 阅读 · 0 评论