
Android
kyleada_dl
奔跑吧
展开
-
Dagger2 学习笔记
听说Dagger2和Retrolambda很久了,本来是拒绝的,觉得只是锦上填一点小花而已,但最近看来,Github上已经有很多开源项目采用,再不学就又落后面了……看完下面这三篇就差不多了,其他很多都是重复的,Dagger2是唯一的我感觉看完官方的讲解还无从下手http://blog.fidroid.com/post/android/dagger-on-android-dagger2xiang-j原创 2016-03-12 23:21:40 · 3674 阅读 · 1 评论 -
Volley请求Cookie超时/Token认证失效的处理
一般App端请求应该用Token做认证吧,并且Token时间设置较长时间。这样本地不存储用户信息,保证安全。 但是由于网页版已有代码限制,这里用了Cookie做认证,网页端设了30分钟超时,不可能在App上30分钟后让用户重新登录。没用Volley之前,是用自己封装的HttpURLConnection,当Cookie超时时,可以读到401的状态吗,然后用保存在本地的用户名和密码(本地加密处理过,但原创 2015-12-08 20:41:27 · 2392 阅读 · 0 评论 -
RxJava:Schedulers选择 newThread vs io
http://stackoverflow.com/questions/31276164/rxjava-schedulers-use-cases一般的网络请求使用io,io使用了无限的线程池,newThread没有线程池维护immediate(): Creates and returns a Scheduler that executes work immediately on the current原创 2016-01-13 18:11:32 · 5859 阅读 · 0 评论 -
Android Http缓存数据处理
来北京一个多月了~ 本周做组里技术分享时,被提问到一个问题: Retrofit里自带网络线程调度(okHttp),适配RxJava后,内部是同步还是异步的?异步的话,就多了一层线程的包装了? 听完问题后,我的第一反应是,Jake大神怎么能没处理好这个问题呢,内部肯定是选择同步了吧,使用RxJava的理念就是线程调度都交给Rx好了。 但我确实没有看过这部分源码……当时只对动态代理感兴趣了……配原创 2016-06-04 16:56:12 · 3097 阅读 · 1 评论 -
RecyclerView里notifyItemRemoved的坑
RecyclerView很多时候是展示静态的数据,并不会有删除的操作,讲到RecyclerView时,会提到它提供了一个很好的展现删除操作动画的函数,代码片段一般是这样的 @Override public void onBindViewHolder(final CommonViewHolder holder, final int position) {原创 2015-11-28 11:49:18 · 43934 阅读 · 26 评论 -
前台Activity旋转,后台Activity被销毁
上周四要发版,结果非常之尴尬,因为我负责的部分,导致到晚上12点仍然无法通过测试验收。 非常非常尴尬…… 我负责爱奇艺头条的视频播放部分,一个场景是,首页Feed流A页面支持视频自动播放,点击正在播放的视频,跳转到B页面,B页面使用同一个视频播放器完成续播。问题复现:在B页面点击全屏按钮,偶现视频停止播放。追查:点击全屏,播放器内部要调整TextureView大小,这时发现player变成了nu原创 2017-01-03 17:47:31 · 1105 阅读 · 1 评论 -
oppo手机上获取辅助功能失败
在辅助功能里把自己的应用加进去后,应用可以正常使用AccessbilityService. 但是,当使用oppo的最近任务里的清理按钮后,应用被杀,应用的辅助功能也被关闭了。http://123.157.214.131/thread-241930-1-1.html根据论坛里说法,貌似无解……原创 2017-09-13 11:07:20 · 2305 阅读 · 0 评论 -
Android Camera使用和人脸检测
参考: 1. 最简单方式,参考官网或http://www.jianshu.com/p/7dd2191b4537 1. 文章使用两个SurfaceView 分别进行画面预览的显示和人脸位置的绘制 https://yuncnc.github.io/2017/03/04/Android/Android%E4%BA%BA%E8%84%B8%E6%A3%80%E6%B5%8B%E5%9F%BA%E6%9原创 2017-09-15 18:03:46 · 4970 阅读 · 0 评论 -
RxJava里doOnNext的使用和线程处理
doOnNext的使用我对doOnNext的使用是存在疑惑的,按照官方文档 The doOnNext operator is much like doOnEach(Action1) except that the Action that you pass it as a parameter does not accept a Notification but instead simply acc原创 2016-03-01 15:08:33 · 29028 阅读 · 3 评论 -
Android模拟器知识以及改造
1. 我们做了个什么东西? 提供了一个Android模拟器,运行流畅度可以类比真机,可以正常运行市面上的大部分应用,比如应用宝,手机管家等。在功能性测试的场景下,比真机节约成本,维护更方便。 2. 原生安卓模拟器的缺点?说Android模拟器慢其实是指早期Google提供的只能用于在Arm架构上运行的Android镜像在模拟器上运行慢。与此对照的是,iOS模拟器运行非常流畅。其实,iOS提供的...原创 2018-03-12 09:48:40 · 16498 阅读 · 7 评论 -
ASM插桩实现Android端无埋点性能监控
Android端无埋点实现页面性能监控背景当我们需要了解页面加载性能时,可以通过手动埋点的方式记录页面阶段耗时、网络耗时、数据库加载耗时以及其他耗时点,配合slardar平台,能直观地了解到页面的性能情况。但随着业务变动,手动埋点存在易写错,难维护的麻烦。业界广泛使用了插桩技术来实现无埋点监控,我们也结合现有监控库,实现了自己的无埋点监控方案。本文旨在介绍实现原理,方便大家对监控库的使...原创 2018-09-12 12:09:04 · 6392 阅读 · 3 评论 -
给REST接口做鉴权认证:OAuth
现在做的App和网站共用REST接口,用的是基于Cookie的认证,按照一般约定采用了30分钟的超时设置,浏览器超时后自动跳转到CAS认证,这个对网页端来说应该说很正常,但是对于App, 并不是银行那样的安全性极高的App,30分钟过后再回来,发现又得重新登录一遍,太无法接受了……为了解决这个问题,App采用了一个不得已的做法,定时ping后台接口……如果定时任务被杀,访问后台接口提示超时的话,再用原创 2016-03-03 18:18:32 · 23801 阅读 · 0 评论 -
一个奇怪的子线程更新UI问题
public class MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta原创 2016-03-02 11:10:09 · 1038 阅读 · 0 评论 -
ListView 常有用设置
http://mypyg.iteye.com/blog/850624转载 2014-12-22 11:52:07 · 652 阅读 · 0 评论 -
Glide加载需要权限验证的图片Url
Glide默认加载的图片Url是可以公开访问的图片Url,我们的场景里访问图片Url需要带上Cookie信息,否则无法获取图片。解决办法是为图片请求加上头信息方法一是利用GlideModulepackage com.mypackage;public class MyGlideModule implements GlideModule { @Override public void apply原创 2016-01-16 12:44:29 · 9211 阅读 · 3 评论 -
使用响应式编程(RxJava)开发Android App
Android app development using the reactive programming paradigm (RxJava)原作者:Arif Nadeem如果你已经看过了RxJava或其他的ReactiveX库的点赞数,你一定会同意我的说法:响应式编程的学习曲线很陡峭,而之所以形成这种学习体验,则是因为没有好的学习向导和书籍。我探究了响应式编程(尤其是RxJava)背后的基本原理翻译 2015-12-30 12:15:40 · 6659 阅读 · 1 评论 -
MDM设备管理编程中遇到的一些问题
也包含MAM编程中遇到的一些问题要想能够管理设备,应用必须保证不能被卸载,怎么做到? https://mp.weixin.qq.com/s?__biz=MzA3MDMyMjkzNg==&mid=211618188&idx=1&sn=4b08a3058b7d4861b5ade7024a02266e&scene=2&srcid=0915Dfg09vd应用还在,但如果用户把长链接服务停掉,就无法接收原创 2015-12-30 13:45:16 · 1416 阅读 · 0 评论 -
Webview里JS跳转到Activity页面
有两种方法. 第一种原理是通过webview提供的js和java沟通的接口进行public void addJavascriptInterface(Object object, String name) 然后,在javascript里可以通过name来引用到object对象里有@JavascriptInterface注解的方法Java代码 WebView wv; @Override原创 2015-12-04 18:58:34 · 22602 阅读 · 9 评论 -
在一个Activity里更新另一个Activity UI
我的使用场景是有一个列表,点击某项后,进入详情页。在详情页,对该项的数据可能会进行若干更改,回到原来的列表项,要求列表项的数据得到更新。想了如下几种可能的解决办法:如果数据能存储在本地数据库的话,那么可以先把数据封装到ContentProvider,然后列表页通过Loader方式加载数据,详情页用ContentObserver的方式的方式修改数据。简单的数据存储在SharedPreference的原创 2015-11-28 13:25:40 · 3176 阅读 · 0 评论 -
记一个用RxJava遇到的问题
问题的现象是Observer的onNext方法被调用后,它的onError方法也紧跟着被调用了……我的第一反应是RxJava的Bug?……当然不是的…… @Override public void onNext(T args) { try { if (!done) { actual.onNext(args);原创 2016-01-12 15:22:44 · 1131 阅读 · 0 评论 -
RxJava学习笔记2:基于RxJava+okHttp的Rest Cas登录实现
1.本来打算用已经对RxJava提供支持的Retrofit2实现,但Retrofit2的文档基本没有,没有找到可以获取Cookie、对status code处理的方法,所以还是用okHttp进行了实现 2.上周开始学习RxJava,是想解决多个网络请求嵌套访问的问题,CAS算是比较典型的多个同步请求后才能获取实际需要的内容 3.代码中用到了”如何用okHttp进行Cookie的自动管理”,App原创 2015-12-14 15:06:17 · 9276 阅读 · 3 评论 -
Android电量监控
原创 2018-10-22 10:05:52 · 1067 阅读 · 0 评论