关闭

Gboard背后的机器学习

大多数人每天会花许多时间在敲击手机键盘上:发送邮件、编辑文本、参与社交媒体等等。然而,手机键盘使用起来依然很麻烦。用户使用手机键盘的平均速度比物理键盘慢35%。为了改变现状,我们最近对Android Gboard提供了许多令人振奋的改进。致力于创造一个智能机制,让用户可以更快输入,同时提供建议与纠正错误,无论你选择什么语言。...
阅读(162) 评论(0)

Android的APK全面瘦身

随着APK功能越来越多、越来越复杂,APK的体积也变得越来越大。当用户去看APK描述时,惊叹:哇!这么多功能,赶紧下载来玩一下。但用户真正点击下载后,发现APK体积这么大,擦!如果没WIFI,下载又耗流量,安装又占内存。经过衡量后,用户可能选择终止下载,这样一来很容易造成用户流失。为了更好用户体验,我们得保证功能多样化的同时,APK体积又足够小。那么,让我们共同探讨下如何对APK进行全面瘦身。...
阅读(89) 评论(0)

Android N 多窗口的应用——画中画

Android N 预览版本支持画中画(Picture in Picture)模式进行视频的播放。画中画是多窗口模式的一种特殊类型,主要用于后台播放视频。Android TV设备早已经支持画中画模式。在多窗口模式中,用户仍然可以看到处于暂停状态的应用,而且应用在暂停状态下可能仍需要继续其他操作。例如,处于暂停模式但可见的视频播放应用应该继续显示视频。Android官方建议播放视频的Activity不要在onPause()暂停视频,应在onStop()暂停视频,在onStart()恢复播放。...
阅读(954) 评论(0)

Android O 开发者预览版新特性

今天,2017年3月26日星期日,负责Android项目的副总裁Dave Burke先生向广大开发者宣布Android O正式发布。看来不仅仅是程序员周末没闲着,就连google副总裁也忙得不可开交,只能在周末推广Android新特性。我怀着好奇心进入Android开发者网站,发现新版本变化不小:后台限制、高质量的蓝牙音频编解码、自适应图标、键盘导航、运行时优化等。...
阅读(347) 评论(0)

HTML5.1——14项新增特性以及使用案例

HTML5归万维网组织所有,它提供访问网络标准,所以来自世界各地的协议都可以访问。在2016年11月,W3C更新了长期运行的HTML5,是两年内最小版本更新。许多最初的HTML5.1特征被弃用,因为缺乏浏览器渲染机制的支持。 虽然,HTML5.1带来很少元素和提升,但它仍然是一个小版本更新。一些新元素包含联合体标签,现在包括,,和,给开发者提供更多表达方式。 W3C已经在准备HTML5.2的起草,预计在2017年底发布。与此同时,我们...
阅读(250) 评论(0)

google迈向IoT的开端——推出Android Things操作系统

上个月Google推出Android Things 嵌入式系统取代“Brillo”,这意味着Google看好IoT(物联网)发展,要与Apple的HomeKit抗衡。我本人是先学51单片机,然后是ARM的stm32嵌入式开发,再到Android客户端开发。因此,对于Android中的嵌入式开发比较感兴趣。其实,Android Things是Android的一个分支版本,类似于可穿戴手表,为开发者提供丰富的API接口,使用java语言开发。...
阅读(834) 评论(0)

仿微信透明度渐变且带红点提醒的底部栏

微信主页面慢慢水平滑动时,会发现底部栏的图标以及文字有透明度渐变效果。其中,透明度的大小依赖ViewPager的Offset系数。从当前页面切换到下一个页面,当前页面的底部栏颜色会逐渐变淡,而下一个页面的底部栏颜色会逐渐变深。其实底部栏渐变效果已经有其他人写过博客以及发表过开源项目,但是觉得还是缺少点什么。打开微信看看,噢耶,是红点提醒和未读统计。既然有完善空间,那么说做就做。...
阅读(433) 评论(0)

使用Robolectric做Android单元测试

首先谈谈,为什么要进行单元测试呢?理论上说,多了单元测试这一环节意味着要付出额外时间,如果开发周期不变,那么编写代码的时间必须相应缩短。这岂不是作为程序猿的我们自己给自己找麻烦,吃力不讨好吗?讲真的,我一开始也有这种想法,怀着半信半疑的态度来做单元测试。后来慢慢地发现,单元测试过程帮助自己找出考虑不周或者意料之外的bug,即时修复。这样一来,去到测试人员手中的app瞬间变得高大上,bug出现率有所降低,减少了二次测试验证所浪费的时间。那么,做单元测试的必要性还是存在的,它可以帮助我们快速定位bug,从而修复...
阅读(738) 评论(0)

细数RxBinding的各种优雅响应式绑定

RxBinding出自Square公司的Jake Wharton大神之手,往往是结合RxJava一起使用。RxBinding的核心是RxView,它包含:attaches、detaches、clicks、drags、draws、focusChanges、globalLayouts、hovers、layoutChanges、longClicks、scrollChangeEvents、systemUiVisibilityChanges、touches、activated、clickable、enabled、pr...
阅读(744) 评论(0)

揭开google为android打造的响应式编程——agera面纱

两年前,推出RxJava。后来Square公司陆续推出RxAndroid、RxBus、RxBinding,把响应式编程发扬光大,深受开发者的喜爱。两年后,Google公司感觉不对劲,干脆自己推出全新的响应式编程,官方称之为Agera,这名字听起来有点奇怪。官方是这样解析的:Agera(瑞典文的意思是"采取行动")是一个超轻量级的Android库,帮助Android应用中有生命周期的组件(比如:Activities)或者组件中的对象(比如:Views)预准备数据。 通过加入函数式响应式编程,Agera可以在时...
阅读(328) 评论(0)

语音消息以及未读提醒连续播放

微信引入语音聊天后,使得语音聊天非常火。最近做了一个关于语音聊天demo,现在介绍下整个实现过程:包括录音、保存音频文件至SD卡、发送录音文件、接收新语音消息红点提醒、播放暂停、未读语音消息连续播放、播放模式切换。...
阅读(427) 评论(9)

三大 JS 框架的较量:Angular.js 与 React.js 与 Ember.js

通过选择合适的JavaScript框架来更好适配你的项目需求,这有利于提高你的开发能力与web apps的竞争力。然后,你可以为基于JavaScript的应用或者网站想个极佳的主意。选择合适框架应该对你项目的成功有显著效果。它可以推到你及时完成项目,并且有助于你将来维护代码。JavaScript框架,比如Angular.js,Ember.js,或者React.js,能提供很好的代码框架,并且保持代码的组织性,从而使得你的app更具灵活性与可扩展性,开发过程更加容易。...
阅读(2406) 评论(0)

插件化之DroidPlugin深度hook

现在app体积越来越大,占的手机内存越来越多,这对于承载几十个app的手机来说无疑是个硬伤。怎么样才能做到既可以满足用户多样化需求,又不明显增大app体积呢?答案是,应用插件化技术。插件化思想概括起来:宿主与插件分离,从结构上解耦,即装即用,宿主可动态加载插件,有必要时宿主开放部分接口给插件调用。众多一线互联网公司纷纷提出自家的解决方案,甚至有些个人开发者也开源网站分享了自己源码。其中,360公司基于深度hook思想实现插件化(“动态加载”)。接下来,介绍下DroidPlugin的工作原理与实现过程。...
阅读(511) 评论(2)

自定义RecyclerView实现垂直滑动的ViewPager

android原生的ViewPager默认水平方向滑动翻页的。突然,项目里有个签到需求要做成上下滑动翻页。我的第一反应是应用ViewPager,可是它只适用于水平滑动的情景,可不可以继承ViewPager重写它的onTouchEvent方法,把检测水平滑动的手势改成垂直滑动手势呢?答案是肯定的,这种做法可以实现上下翻页的功能,但是快速滑动时会导致页面错乱,而且fragment需要依赖activity作为主体,耦合度比较高,控制逻辑比较复杂。后来,我下定决心换另外一种方式实现,把目光转移到RecyclerVi...
阅读(1431) 评论(0)

android与javascript相互调用

最近前端又火了一把,为什么说又呢。因为facebook在2015年下半年推出React Native,支持跨平台调用,把前端推向“风口浪尖”(这里是褒义词)。差不多时隔一年,2016年9月份,腾讯推出微信小程序,再一次把前端推向新的高度。这引起许多前端开发者乃至android与ios开发的高度关注。我也带着好奇心,决定从javascript与android交互做起。...
阅读(339) 评论(0)
24条 共2页1 2 下一页 尾页
    个人资料
    • 访问:12747次
    • 积分:378
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:0篇
    • 译文:4篇
    • 评论:18条
    最新评论