codezjx's Home


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

友盟统计UMID潜在的一个坑

发表于 2016-07-04 | 分类于 Android
前言最近发现友盟的数据统计里面,活跃用户的数量有点不大对劲,跟启动次数相比,严重偏少。sdk的使用方式没啥好说的,就那么简单几步,应该不会是sdk设置的问题。于是就从友盟关于活跃用户的定义开始,着手分析这个问题。 关于活跃用户与UMID关于活跃用户的定义,可以参考官方这篇文章:你真的了解活跃用户吗?,总结起来其实就是很简单的一句: 活跃用户的定义:打开应用的用户即为活跃用户,不考虑用户的使用情况。 从上面的文章,了解到Umeng里面对用户的定义:友盟将一个独立的设备视为一个用户,然而每个独立 ...
阅读全文 »

在Android上使用官方Lambda支持 - Android N & Jack工具(兼容旧平台)

发表于 2016-05-06 | 分类于 Lambda
Android N PreviewGoogle前段时间发布了Android N Preview,对于开发者来说,特别重要的一点是开始支持Java8里面的一些新特性了。N Preview目前支持的特性也非常有限,主要有下列几项,具体参考官方介绍和这篇翻译:在 Android N 预览版中使用 Java 8 的新特性: Lambda表达式 默认和静态接口方法 Stream 重复注解 Method References Lambda表达式来看看我们比较关注的一点:Lambda表达式,引用官方的一句 ...
阅读全文 »

在Android上使用Lambda表达式 - retrolambda插件

发表于 2016-05-05 | 分类于 Lambda
Update: Android Jack编译工具的加入使得我们可以在旧平台上也使用Lambda表达式了,最重要这是官方支持哦,具体内容看我的这篇:《在Android上使用官方Lambda支持 - Android N & Jack工具(兼容旧平台)》 前言Java8比较大的一个变化是加入了Lambda表达式,一种紧凑的,传递行为的方式。它可以使你的代码更简洁、逻辑更清晰。特别是用Rxjava的时候,将各种数据变换使用Lambda表达式来简化,可以最大化的减少样板代码,使整个数据流的处理逻辑 ...
阅读全文 »

Android中使用Picasso将图片直接转换为圆形

发表于 2016-05-04 | 分类于 Android
前言圆形头像现在很流行了,Github上也有很多开源的库,最经典的是直接使用一个自定义的圆形ImageViwe,比较有代表性的有这个项目:hdodenhof/CircleImageView。但是,如果你的项目中正好使用Picasso作为图片异步加载的话,可以直接使用Picasso原生的Transformation机制,它允许你在显示图片前做一些转化。 为了避免重复造轮子,先Google大法一下,会发现2个比较多人start的gist:aprock/RoundedTransformation.ja ...
阅读全文 »

使用RxJava优化Retrofit请求

发表于 2016-04-23 | 分类于 Google Drive Android
在前几篇Google Drive相关的博客中,我们提到了token过期的问题。在进行任何一个Google APIs接口调用的时候,很有可能由于access token过期了(默认的使用期限才3600秒),会导致我们的请求失败,返回HTTP 401: Invalid Credentials error等异常。在这个时候,我们必须重新请求token,然后在请求成功的callback中再次请求我们相关的API。 看到这里,像这种异步的嵌套请求,我们很容易就联想到RxJava,异步世界必不可少的库。那么 ...
阅读全文 »

使用Stetho调试Retrofit的网络请求

发表于 2016-04-23 | 分类于 Android
Stetho是Facebook出品的一个非常强大的Android调试工具。在基于你已经正常使用Retrofit或者okhttp的情况下,只需要简单3步,你就可以在Chrome上的Developer Tools中调试你Retrofit的请求了。就像Web开发使用调试功能查看页面的访问数据一样那么方便。不仅如此,你还可以在里面直接查看SQLite中的数据等等等。。。步骤如下: Step1:添加依赖 12compile 'com.facebook.stetho:stetho:1.3.1'compil ...
阅读全文 »

使用Retrofit2.0实现Google Drive文件上传进度显示

发表于 2016-04-23 | 分类于 Google Drive Android
在上一篇文章中,我们完成了Retrofit2.0接口的定义及基本的调用。不知大家是否关注到DriveApi.uploadFileMutil()这个接口方法需要传入两个MultipartBody.Part对象,分别对应Metadata part和Media part,如何实现这里的Part对象呢?分为两部分: Metadata Part这部分比较简单,MultipartBody.Part.create()方法直接创建即可: 1234String content = "{\"name\": ...
阅读全文 »

使用Retrofit2.0实现GoogleDrive相关API

发表于 2016-04-23 | 分类于 Google Drive Android
做移动开发的相信对Retrofit一点也不陌生,它是一套RESTful架构的Android(Java)客户端实现,可以利用接口,方法和注解参数(parameter annotations)来声明式定义一个请求应该如何被创建。它的出现使我们只需关注接口所定义的功能而非拘泥于具体实现中,极大简化和提升了开发效率。 相关API接口及请求参数下面我们来看下最近在项目用到的几个API接口和请求参数,并用Retrofit2.0来实现他们: 1.请求token(其中grant_type字段固定值为author ...
阅读全文 »

Google Drive Oauth2.0认证流程

发表于 2016-03-31 | 分类于 Google Drive Android
Oauth2.0认证流程Google提供的APIs访问是基于Oauth2.0认证的,其流程可以大致分为以下几个步骤: 客户端App发起认证(若用户木有登录,则需要先登录) 弹出授权页面,用户点击允许后,Google认证服务器给我们返回一个授权码(Authorization code) 客户端获取到授权码以后,用授权码向认证服务器请求access token 服务器验证授权码无误后返回access token至客户端 拿到access token以后,就可以访问Google APIs了(其实这里 ...
阅读全文 »

Google Drive WebView授权方式实现

发表于 2016-03-31 | 分类于 Google Drive Android
背景由于国内大多数机器都木有安装Google Service框架,也就是说木有办法直接使用Drive SDK进行授权。因此,这一篇文章将介绍如何通过WebView的方式进行Oauth2.0授权码的获取(话说《ES文件浏览器》就是通过这种方式来实现Oauth2.0授权的)。具体的效果是这样的:如果没有登录Google账号,会要求你先登录一次 先来看一下web端account的授权url:123456https://accounts.google.com/o/oauth2/auth? redi ...
阅读全文 »
12345
codezjx

codezjx

46 日志
16 分类
55 标签
GitHub Twitter StackOverflow Weibo
© 2020 codezjx
由 Hexo 强力驱动
主题 - NexT.Pisces