前言 能够让App运行在大量不同型号和系统版本的设备上是Android系统最牛逼的地方之一。注意,我这里说的是设备,这其中除了不同型号的手机,还包括平板电脑,手表,甚至是电视,汽车等等。 要想兹次花样繁多的设备和平台本身…
标签:Android
关于从客户立场考虑问题的困难
前段时间读 711 的那本零售畅销书,说, “为客户考虑问题”和“站在客户立场考虑问题”,这是完全不一样的两件事情。 可能我是 C 端产品经理出身的关系,以前一直觉得难道不是个常识么。直到我自己做了公司以后,才发现要让同…
Dagger 2学习与探索(六)
上一期稍微探究了一下交叉依赖,这一期来探究一下Dagger里的@Scope标注。 Scope是范围的意思,Dagger里面自带了一个已经可以用的范围标注:@Singleton。 我们知道,Singleton是单例的意思,…
Android 内存优化笔记
前一段时间接手了一个新的项目,看友盟后台有好多OOM,而且滑动起来也很不流畅。我便对此产生了好奇。花了一段时间把内存这个彻彻底底的研究了一下,在此总结一下怎么样才能把app的内存占用降低下去。 题外话:推荐一个非常好用的…
RecyclerView的焦点记忆封装
上一篇中介绍了TV开发中的列表焦点实现 android tv列表焦点记忆实现,是用外部代码控制的方式实现的,比较繁琐,现在介绍用自定义RecyclerView的方式来实现,并增加了其他的功能:限制纵向和横向移出焦点,移入…
Android 解析异步消息处理机制
Android 中的异步消息处理主要由四个部分组成,Message、Handler、MessageQueue 和 Looper。 Message Message 是在线程之间传递的消息,它可以在内部携带少量的信息,用于在…
用于在Android和iOS设备上保存纹理的GPU内存限制
我正在创建一个基于Open GL ES 3.0的 Android应用程序,它必须满足各种设备的需求. 由于我的应用程序中的某些要求,我必须在我的应用程序运行时在RAM上保留大量图像数据.由于Android手机对每个应用C…
android – WatchViewStub已弃用
我开始做一个可穿戴应用程序,我可以在我的MainActivity中看到WatchViewStub已被弃用.我在网上搜索了我应该使用什么而不是WatchViewStub但我找不到任何东西.我使用支持:wearable:2.…
在Android中使用Select子句进行左外连接
我试图在我的SQLite数据库上运行此查询: SELECT * FROM tag LEFT OUTER JOIN (SELECT tag, annotation FROM annotation_tag_map WHERE…
android – 添加媒体路由器强制转换按钮时出错
我尝试使用 CastCompanionLibrary为我的应用程序实现强制转换功能. 当它尝试将Media Router Cast Button添加到ActionBar时,我收到此错误: 10-03 19:33:20.0…
多线程知识梳理(1) - 并发编程的艺术笔记
第三章 Java内存模型 3.1 Java内存模型的基础 通信 在共享内存的模型里,通过写-读内存中的公共状态进行隐式通信;在消息传递的并发模型里,线程之间必须通过发送消息来进行显示的通信。 同步 在共享内存并发模型里,…
LeakCanary 原理分析
本文主要内容 1、Reference 简介 2、LeakCanary 使用 3、LeakCanary 源码分析 LeakCanary ,一种常见的内存泄漏分析工具,它能分析出内存泄漏点并以通知形式告诉使用者,使用也比较简…