
Android开发
文章平均质量分 71
潇潇凤儿
快乐过好每一天,时刻向上得了厅堂,下得了厨房,写得了代码的好码农进步。
展开
-
RecyclerView中涉及的设计模式
从设计模式的角度分析RecyclerView,暂时分析到用到了适配器、观察者、策略、享元、桥接、工厂、装饰者模式,具体实现如下:原创 2020-03-09 17:20:36 · 1170 阅读 · 1 评论 -
android标题栏、状态栏图标文字颜色及背景动态变化
android中沉浸式状态栏的文章已经满大街了,可是在实现某些效果时,还是得各种搜索,测试一通后,最后还常常满足不了要求,即使好不容易在一部手机上满足了需求,放在另外一手机上,发现效果差强人意。今天把自己这几天学到的关于沉浸式状态栏知识进行总结下。问题 比如我想实现以下效果: 1. 同一个Activity需要动态变换标题栏和状态栏文字字体色值,该如何实现? 2. 一个Activity包含多个F原创 2017-06-22 14:22:30 · 67078 阅读 · 24 评论 -
动态加载、插件化、热部署、热修复(更新)知识汇总
开发中经常能听到动态加载,插件化,热部署等词,动态加载到底是何方神物,它能实现什么功能,实现原理又如何?动态加载和插件化、热部署又有着什么样的联系呢?下面我们一起来学习吧。1. 基本知识1.1 动态加载动态加载,是指在应用运行时,动态加载某个模块,达到新增或是改变某一部分功能/行为。1.1.1 Java的动态加载通过类加载器ClassLoader(用来加载类的)实现动态加载Jar文件,当一个Clas原创 2017-03-31 16:56:59 · 6532 阅读 · 0 评论 -
android lambda的使用总结及运行原理
好像是从Android studio2.0版本发布后,可以使用Java 8进行开发,对于开发者来说一个重大的更新,我们可以happy的在代码中使用Lambda了。这可以大大减少代码的编写,只关注最重要的部分。虽然使代码的可读性变差,但用习惯了就会喜欢上Lambda表达式,它使代码变得干净整洁了不是一点半点。既然大家都用上了lambda表达式,为什么我还要写这篇文章呢,咱们开发人员当然不能老是拿来主义原创 2017-06-29 17:48:50 · 5352 阅读 · 0 评论 -
个推clientId老是获取不到几点解决办法
用第三方推送,好的一点是省事,不用自己研究推送原理,只要把自己的apk放到第三方平台注册下就好了;不好的一点是有时会发生丢包,毕竟是免费产品,有时出了问题,不知道原因,网上搜有时也搜不到。可能因各种环境不一样吧,第三方虽然提供了demo,但是有时即使把demo代码直接copy进来,发现在自己工程中就不好使了,不知道大家没有遇到这样的问题。反正我是遇到了,比如今天想吐槽的个推clientId获取不到问原创 2017-07-14 16:19:16 · 14437 阅读 · 2 评论 -
android 图片占用内存大小及加载解析
在讲解图片占用内存前,我们先问自己几个问题:我们在对手机进行屏幕适时,常想可不可以只切一套图适配所有的手机呢?一张图片加载到手机中,占用内存到底有多少?图片占用内存跟哪些东西有关?跟手机有关系么?同一张图片放在不同的dpi文件夹下内存占用会变化么?如果是网络图片,加载到手机中,占用内存跟手机屏幕有关系么?带着这些问题我们来一层层解析。我们先看看加载本地资源,不同手机所占内存情况:一、加载本原创 2017-04-01 16:59:24 · 15394 阅读 · 10 评论 -
android日程表实现---仿滴答清单
此项目是仿滴答清单做的一个日程表,现包括的功能有:日视图、三日视图、周视图、月视图、列表视图(周月可自由切换,左右滑动切换周或月份)。1、 网络请求功能完善; 2、 同步手机的日程表; 3、 可以增加日历事件,并可选择是否同步到手机本身日程表; 4、 可设置提醒事件功能; 5、 日历事件保存到数据库; 6、 同步google邮件账号或是其他黄历事件; 7、 事件功能分类展示;原创 2017-07-26 17:16:07 · 18352 阅读 · 4 评论 -
android webview cookie保存
虽然说WebView 保存cookie的文章有很多,但查看了很多别人写的博客,都不满足我的要求,当然对我的实现也有一些帮助。为了以后遇到类似问题,不再需要重写搜索,特记录下来,如果正好能帮到你,那更好。我们要实现的效果是整个app全是h5页面,只有一个url入口,首先进入登录页面,要求只要cookie还没过期,每次进入应用都是登录后的页面。而给webview设置cookie,首先要获取到cookie原创 2017-09-01 22:21:26 · 4286 阅读 · 0 评论 -
友盟集成第三方登录--微信、QQ实现
友盟集成了第三方登录,本给我们带来便利,但是文档只描述了集成方式,出现问题,发现还得自己各种baidu,这里总结自己遇到的一些坑,以防下次再踩。 友盟集成第三方微信登录: 友盟集成方案参考:http://dev.umeng.com/social/android/login-page#1 前期工作:微信账号开通开发者账号权限,在https://open.weixin.qq.com/上创建自己应用原创 2017-11-02 09:39:14 · 5894 阅读 · 0 评论 -
android初次进入,用户引导页(蒙层效果)实现
在一般app中,初次安装使用时,除了有用户引导图外,还经常会看到类似于新手使用手册的使用引导页,类似于activity添加了一层遮罩图。这种效果实现一般是在原activity上覆盖一层view,可以用自定义view来实现,也可以用设计师做好和屏幕匹配的图片后,直接全部覆盖在activity上。因为一般引导图上的文字都会设计得比较活泼好看点,所以项目中这种也比较常见。在github上有个标星很高的...原创 2018-03-23 16:34:46 · 10229 阅读 · 0 评论 -
Android根据图片Uri获取图片path绝对路径
在Android 编程中经常会用到Uri转化为文件路径,如我们从相册选择图片上传至服务器,一般上传前需要对图片进行压缩,这时候就要用到图片的绝对路径。 下面对我开发中uri转path路径遇到的问题进行总结,其中涉及到Android不同api下对于uri的处理,还有对于Google相册图片该如何获取其图片路径。1. 从相册获取图片我们从相册获取的图片的代码如下:// 激活系统图...原创 2018-03-30 10:25:33 · 33141 阅读 · 4 评论 -
android多指触屏事件响应(界面包含ScrollView时冲突处理)
项目需求:想在界面上实现双指向左、向右、向上、向下滑屏时触发不同的事件进行响应。项目中遇到的问题:1、Activity中重写onTouchEvent事件触发冲突1)当Activity中不包含ScrollView时,重写onTouchEvent事件,会被触发;2)当Activity中包含ScrollView时,ScrollView会消费掉onTouch事件,把Activity的onT...原创 2018-11-23 22:34:26 · 4879 阅读 · 1 评论 -
RecyclerView性能优化及高级使用
最近研究应用流畅度专题时,发现RecyclerView里边的坑真多,有很多可以优化的点,在理解优化点之前,最好对RecyclerView的缓存机制有一些了解,比如得知道CacheView和RecycledViewPool的区别和联系,RecyclerView的绘制流程有一定了解,再来谈RecyclerView的性能提升。缓存机制可以看看这篇文章:基于滑动场景解析RecyclerView的回收复用机...原创 2019-03-13 13:49:55 · 39478 阅读 · 10 评论 -
别再傻傻得认为AsyncTask只可以在主线程中创建实例和调用execute方法
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布大家都知道在Android中可以AsyncTask来进行异步请求,AsyncTask其实就是把Thread进行了封装,内部实现原理是Thread+Handler,使得线程简单易用。我们在查看AsyncTask源码的时候,会看到它的构造方法上边有这样的提示“Creates a new asynchronous task. T...原创 2019-04-12 11:41:55 · 2684 阅读 · 2 评论 -
android组件化方案对比
现在公司准备项目组件化,前公司项目其实用了组件化,但功能比较少,比较好拆,现在公司项目比较庞大,功能繁杂,参与人员多,感觉非常不大好拆,拆的时候还涉及到功能、代码重构。老大对技术比较看重,还要求大家在重构项目前看完三本书(重构、Effective Java、23种设计模式),这三本书确实也不错的。近期一直在研究项目组件化,看了业界不少组件化方案,这是下面对组件化方案的一些对比,后面还会不...原创 2019-05-14 09:50:57 · 1666 阅读 · 0 评论 -
Dialog区域外可响应点击事件
遇到这样一个需求,一个RecyclerView布局(GridView九宫格样式),每点击一项,弹出一个气泡提示框,再点击下一项的时候,上一项气泡提示框消失,下一项气泡提示框显示出来。用Dialog实现提示框显示,一般需要点击两次item才能实现上面的效果,第一次是Dialog响应点击事件,消失提示框;第二次点击才Item能接收到。要实现上面的效果,必须让Activity能接收Dialog区域外...原创 2019-05-28 17:44:25 · 7723 阅读 · 6 评论 -
面试官之初体验
找工作难,招人也难,现在的新东家,基本处于稳步向前发展阶段,想扩充队伍,需要大量人员:服务器、测试、Android、iOS、大数据、运营等等。我负责Android这块的,主要面向中高级,应届生或是在校生(实习)也招,只要基础好,觉得可培养。在我看来,招人要求跟大厂应该差不多,要求基础好,会分笔试和面试两部分,笔试至少得及格,再根据简历确定是否需要面试,如果是高工有三轮技术面,如果中...原创 2019-07-25 10:24:49 · 1549 阅读 · 6 评论 -
android沉浸式状态栏、fitsSystemWindows、标题栏折叠
现在大部分android手机都是android4.4以上,都支持开发者可以自定义状态栏色值,原来的黑底白字时代已过去。在android5.0上我们还可以自定义状态栏文字色值,让其显示深色字体。一、沉浸式状态栏的实现实现沉浸式状态栏效果,一般有两种方式:1、设置系统主题,在styles.xml中设置,在相应需要实现的界面里设置其android:theme主题。需要根据不同机器版本设置多个styles.原创 2017-03-12 22:04:41 · 29751 阅读 · 0 评论 -
android全屏/沉浸式状态栏下,各种键盘挡住输入框解决办法
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 在开发中,经常会遇到键盘挡住输入框的情况,比如登录界面或注册界面,弹出的软键盘把登录或注册按钮挡住了,用户必须把软键盘收起,才能点击相应按钮,这样的用户体验非常不好。像微信则直接把登录按钮做在输入框的上面,但有很多情况下,这经常满足不了需求。同时如果输入框特别多的情况下,点击输入时,当前输入框没被挡住,但是当前输入框下面的输入框却原创 2017-04-04 11:03:05 · 80483 阅读 · 79 评论 -
android注解与反射、ButterKnife实现
之前面试被问到注解相关知识,无奈当时真是too young too simple,只知道注解的实现用到了反射,多问一句都心虚,对于它的定义都说不明白,对于反射也不能说出个所以然来。其实很多优秀的第三方框架都用到了注解,像Retrofit, ButterKnife, Dagger等,只是平时都是用别人造的轮子进行开发,自己并没有过多的了解,但是现在很多大公司,要的不是一个只会调用API的程序员,需要一原创 2017-05-26 17:26:40 · 4072 阅读 · 2 评论 -
Android ActionBar
1、setHomeButtonEnabled这个小于4.0版本的默认值为true的。但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击。没有向左的小图标。 true 图标可以点击 false 不可以点击。2、actionBar.setDisplayHomeAsUpEnabled(true) // 给左上角图标的左边加上一个返回的图标 。对应ActionBar.原创 2014-10-13 11:16:55 · 900 阅读 · 0 评论 -
Can not deserialize instance of java.lang.String out of START_OBJECT token
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not deserialize instance of java.lang.String out of START_OBJECT token at [Source: org.apache.http.conn原创 2015-11-21 14:31:56 · 56917 阅读 · 2 评论 -
Android客户端采用RestTemplate实现附件的上传
Android客户端采用RestTemplate实现附件的上传,客户端和服务器端代码原创 2016-01-26 17:57:01 · 2320 阅读 · 0 评论 -
ListView(ScrollView)嵌套ListView、GridView显示不全,内容大于一行计算的高度不正确的解决办法
ListView(ScrollView)嵌套ListView、GridView显示不全,内容大于一行计算的高度不正确的解决办法原创 2016-01-13 17:24:05 · 1641 阅读 · 0 评论 -
Retrofit进行WebService请求遇到的问题总结
前面写了一篇利用Retrofit进行WebService请求的文章,地址是:http://blog.youkuaiyun.com/smileiam/article/details/51957232,下面说说自己在调试过程中,遇到的一些问题及解决办法。给其他遇到类似问题的小伙伴,一些参考。1. soapaction header missing,no SOAPAction header这个一般是原创 2016-07-23 17:14:06 · 3743 阅读 · 0 评论 -
多个工程引入个推包,装第二个包时报INSTALL_FAILED_CONFLICTING_PROVIDER错误
对于INSTALL_FAILED_CONFLICTING_PROVIDER错误,大家都知道是由于应两个应用中都包含相同的provider, 由于个推的DownloadProvider写在library的AndroidMainfest.xml文件中,当项目中有两个应用都集成了个推服务,当装了一个应用,再装另外一个就会报INSTALL_FAILED_CONFLICTING_PROVIDER。觖决些办法原创 2017-02-14 09:46:37 · 1059 阅读 · 0 评论 -
Retrofit框架请求SOAP WebService
使用Retrofit框架进行SOAP Webservice请求,包含SOAP版本区分原创 2016-07-19 18:03:00 · 14004 阅读 · 10 评论 -
欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-03-11 10:52:04 · 679 阅读 · 0 评论 -
Material Design控件总结
1. Toolbar知识点1:Toolbar和ActionBar的区别?Toolbar与ActionBar类似,但ActionBar只能仅位于活动的顶部,而且也不能实现Material Design效果,使用不灵活。一般在开发时都会在app的theme里设置不显示ActionBar,如下: <style name="AppTheme" parent="Theme.AppCompat.Light原创 2017-03-21 22:16:09 · 1286 阅读 · 0 评论 -
android类加载器ClassLoader
我们开发android写的都是java代码,java代码都是写在class里面,虚拟机需要把class文件加载进来才能创建实例对象并工作,完成类加载的角色就是ClassLoader。原创 2017-03-31 15:07:31 · 2069 阅读 · 0 评论 -
android中使用Rxjava实现倒计时功能
一般我们在开发时,常会遇到使用倒计时的场景,以前一般会使用thread+handler来实现,而强大的Rxjava横空出世后,使这一切变得简单了。我们可以在子线程中直接使用发射器每融1S发出一个时间,在主线程中接收更新ui,在等倒计时结束恢复界面,下面给出在用户注册时获取验证码的,倒计时使用的代码demo。原创 2017-03-31 17:21:20 · 4599 阅读 · 3 评论 -
android开发架构总结一——常用的第三方库
以下是自己开发项目中一些常用的第三方库,后面的版本号可能会有些更新或不一致:1. 网络请求:(1)Retrofit2.1.0compile ‘com.squareup.retrofit2:retrofit:2.1.0’//retrofit主网络 compile ‘com.squareup.retrofit2:adapter-rxjava:2.1.0’//将Call类型转成Observable c原创 2017-04-11 16:24:14 · 3445 阅读 · 2 评论 -
Android开发艺术探索读书笔记——进程间通信
1. 多进程使用场景1) 应用某些模块因为特殊需求需要运行在单独进程中。如消息推送,使消息推送进程与应用进程能单独存活,消息推送进程不会因为应用程序进程crash而受影响。 2) 为加大一个应用可使用的内存,需要多进程来获取多份内存空间。2. 如何开启多进程给四大组件(Activity、Service、Receiver、ContentProvider)在AndroidMainfest中指定andr原创 2017-04-16 10:29:33 · 2892 阅读 · 2 评论 -
android webview加载html图片自适应手机屏幕大小&点击查看大图
我们在开发中,显示信息详情时,一般后台会给出html文本,在android端一般采用webview控件来展示,但是后台给出的html文本一般是给电脑端用的,没有自适配手机,导致手机端图片显示过大,需要左右移动来查看全图。下面给出几种实用方法,达到在手机端用webview展示html中的图片,能自适应手机屏幕展示。需要用webview控件进行展示html文本,为使文字也自适应手机屏幕大小,需要先对an原创 2017-05-15 10:35:10 · 33940 阅读 · 23 评论 -
Android 输入法弹出框挡住界面问题
如微信中评论时,在弹出输入框原创 2014-10-10 16:40:47 · 4740 阅读 · 0 评论