
android开发
文章平均质量分 64
AWAY_LI
we are all in the gutter, but some of us are looking at the stars.
展开
-
android的touch事件分发机制-View篇
android的touch事件分发机制先赞一下Markdown编辑器,很好用:)网上讲解touch事件分发的文章已经很多了,看得多了,更觉得混乱。所以打算自己写一篇,顺理一下,也希望对后来者能有点用处。在具体讲解之前,我想先回答几个常见的问题。 1. 为什么我们要了解touch的分发机制 2. touch的事件分发涉及到哪几个方法 3. view和viewgroup的分发机原创 2015-08-11 13:33:46 · 589 阅读 · 2 评论 -
android屏幕适配终极指南(二):DP和DPI
上次我们讲了DPI,分辨率的一些事儿(有兴趣的童鞋可以去这里看:android屏幕适配终极指南(一):DPI,分辨率和屏幕尺寸)这次我们来讲点跟android有关的。 大家都知道,一个正常的工程,都会有如下几个文件夹: ps:旧的版本还会有个drawable-ldpi,也就是low dpi,但是这个在我现在使用的android studio1.0中,创建工程时并没有生成它,我猜测可能是现在的手机原创 2015-12-10 16:21:06 · 2164 阅读 · 2 评论 -
Android AsyncTask的doInBackground不执行问题
今天在写一个小程序的时候,遇到一个问题:一个activity页面的AsyncTask的doInBackground不执行。试着在doInBackground里面打印了下log,确认是走不到doInBackground里面: @Override protected Result<JokeInfo> doInBackground(Integer... params) {原创 2015-12-29 16:45:12 · 2950 阅读 · 0 评论 -
DrawerLayout取消阴影
DrawerLayout在滑出的时候,是默认有一个阴影的,把原来的layout给半透明的盖住。其实这个阴影是可以去掉的,方法也很简单,把阴影颜色设置成透明:mDrawerLayout.setScrimColor(Color.TRANSPARENT);原创 2015-12-02 11:47:31 · 3525 阅读 · 3 评论 -
Android视频录制--MediaProjection
最近在做视频录制的项目,把自己这段时间的研究内容断断续续发布到博客上,今天要讲的是MediaProjection。android在5.0系统之前,是没有开放视频录制的接口的,如果要录制视频,必须要先root,这部分我会在随后的博客中细讲。 在5.0,Google终于开放了视频录制的接口(其实严格来说,是屏幕捕捉的接口,也就是截屏),也就是MediaProjection和MediaProjectio原创 2015-09-10 17:07:41 · 21965 阅读 · 12 评论 -
Android视频录制--屏幕录制
上一篇介绍了MediaProjection,这个类可以用来实现安卓屏幕数据的采集,也就是手机一帧帧的截图,并输出成byte流的格式。 有兴趣的同学可以看这篇: Android视频录制--MediaProjection但其实只用MediaProjection,并无法生成一个视频,因为我们得到的只是流,还需要把流编码成视频格式。MediaProjection官方的demo里,也仅仅是把输出内容放到了原创 2016-01-08 15:35:17 · 13846 阅读 · 16 评论 -
Protocol Buffers介绍
最近在跟第三方合作的时候,用到了protocol buffers,查了一下,发现网上对于这个的文章已经不少了,借花献佛,也自己学习一下。今天来介绍一下“Protocol Buffers”(以下简称protobuf)这个玩意儿。本来俺在构思“生产者/消费者模式 ”系列的下一个帖子:关于生产者和消费者之间的数据传输格式。由于里面扯到了protobuf,想想干脆单独开一个帖子算了。 ★protobuf是转载 2015-12-09 17:35:14 · 458 阅读 · 0 评论 -
Retrofit和Rxjava结合实践(一)--Retrofit快速上手
这个专题我打算写三篇,分别介绍Retrofit,Rxjava以及如何将两者结合起来。 本篇先介绍比较简单的Retrofit一. 为什么要使用Retrofit 因为简洁,好用,而且效率高(关于效率这一点,我曾经看到过一个请求耗时的对比,但是对不起各位看官,我搜了好多地方原创 2016-04-01 15:40:12 · 859 阅读 · 0 评论 -
Retrofit和Rxjava结合实践(二)--Rxjava快速理解
上一篇我们介绍了Retrofit,这次我们来了解一下Rxjava。Rxjava的概念和使用,如果铺开来讲,可以讲很长,同上一篇一样,我不打算把这篇博客写成一个技术索引,或者大全,我只是希望能让初学者能够抛开那些复杂的概念(在Rxjava中,你能看到各种让初学者头大的名词,诸如响应式编程,调度器,订阅者,观察者等等),对Rxjava有一个基础的认识,同时知道如何在代码中使用它。ps:关于响应原创 2016-04-05 14:44:31 · 706 阅读 · 0 评论 -
OKHttp的简单封装类
网上关于OKHttp的教程很多,不再一一赘述。最近在自己写一点小的APP,也用不到太深的内容,所以就简单写了一个类来封装一下(或许连封装都称不上)import java.util.HashMap;import java.util.Iterator;import java.util.Map;import okhttp3.Call;import okhttp3.Callback;import o原创 2016-10-09 17:31:55 · 458 阅读 · 0 评论 -
android屏幕适配终极指南(一):DPI,分辨率和屏幕尺寸
dpi,分辨率,dp,sp,px这些东西,相信每个android开发者都不陌生,但是这几者之间的关系,能够说得清清楚楚的,我相信并不多。 看完这篇博客,希望能让你彻彻底底的理解它们。一. DPI 首先说dpi,废话是:每英寸的像素点数(Dots Per Inch,其实这么说不够严谨,真正的”每英寸像素点数”,其实是PPI,Pixels Per Inch,而DPI实际上是每英寸打印点数,是一个印刷原创 2015-12-09 19:52:07 · 8431 阅读 · 0 评论 -
android视频直播-直播流程概述
最近都在忙着做视频直播的项目,有一个月没有写博客了,现在直播流程终于通了,写个博客总结一下。首先,如果你要实现的是摄像头直播,那其实很简单,因为已经有很多第三方支持摄像头直播了,你所要做的,无非就是接入他们的sdk。 或者你也可以去github上找一套摄像头直播的代码。因为我们项目要实现的是手机录屏的直播,所以跟摄像头直播有些区别,无法直接使用第三方的sdk。 ps:关于手机录屏的内容,请看我的原创 2015-11-16 12:01:09 · 6346 阅读 · 3 评论 -
Context那些事儿
Context那些事儿原创 2015-08-12 10:01:39 · 554 阅读 · 0 评论 -
Android音频录制--AudioRecord
最近公司有个项目,需要用到音频录制,就研究了一下这部分。 android的音频录制有2种方式,对应的是两个不同的类:AudioRecord和MediaRecord。MediaRecord的特点是相对来说比较简单,它输出的是一个可播放的音频文件,但是对应的,它缺少对音频的控制(比如要对音频进行改变,变声,混音等)。 AudioRecord的使用相对复杂(其实基本功能的时候还是挺简单的),它输出的是原创 2015-09-10 10:32:53 · 2630 阅读 · 0 评论 -
错误:'/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/bin/java'' finished with non-zer
今天遇到这样一个问题。 有一个项目的工程,引入了一个新的第三方库,引入后,编译没有错误,但是运行时出错,gradle的出错信息如下:AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"}AGPBI: {"原创 2015-08-21 15:00:56 · 33863 阅读 · 0 评论 -
android开发中与后台通讯中公共参数的解决方案
我们在很多项目中,跟服务器端的交互会比较多,需要调用很多的接口。 而为了保证接口的灵活性,安全性,我们通常会传一些每个接口都带的参数。比如当前app的版本号,当前系统,安全认证信息等等。比较常见但是并不友好的方式,是把这些参数放到业务参数里,一并传给后台,比如下面这种: public String getHomeArticle(String authorization,String art原创 2015-08-21 17:55:35 · 1208 阅读 · 0 评论 -
The same input jar ***.jar is specified twice
最近在开发一个android项目的时候,遇到一个问题。 用android studio编译没有错,直接真机调试也没有错,用发布环境Jenkins打包也没有错。 但是我本地环境打包就会报错,提示:The same input jar ukphotoview.jar is specified twice以为是gradle版本的问题,折腾半天也没有发现有什么问题。 干脆就直接搜索关键字ukphoto原创 2015-09-29 15:42:53 · 784 阅读 · 0 评论 -
EventBus的使用
EventBus用了好久了,一直没有整理一下。 我们往简单里说,EventBus的出现,让我们在大部分情况下,不需要使用broadcast来在不同的activity,fragment,甚至是adapter(我知道你们经常纠结adapter和activity的交互!)之间交互了。 当然,如果你要获取系统广播什么的,还是需要broadcast的。 而且EventBus的回调很丰富,你甚至可以指定你原创 2015-09-28 18:19:30 · 1260 阅读 · 0 评论 -
Android Studio常用快捷键,便捷功能汇总
找一个地方,持续更新android studio的常用快捷键和便捷功能 先注明一下,我用的是mac系统下的android studio1.0版本1. 为方法添加自动注释 在主菜单里找到android studio->preferences 然后选择,或者查找到keymap 在keymap的菜单里搜索fix doc comment,右击选择add keyboard shortcut,在弹出菜单原创 2015-09-15 17:05:26 · 765 阅读 · 0 评论 -
RecyclerView初使用遇到的一个问题
最近一直在忙别的项目,RecyclerView出来后,大致看了一下,并没有在实际项目中使用,今天有空写个小程序,正好用了下,遇到了如下的问题。因为一直觉得RecyclerView用起来很简单,我就引入了包后,直接写了个控件: <android.support.v7.widget.RecyclerView android:id="@+id/mountain_list"原创 2015-09-21 17:20:11 · 4581 阅读 · 1 评论 -
android 前置service
在android开发中,如何写一个不被干掉的service一直是一个大问题。 尤其是现在这么多一键加速的app,分分钟让你的服务被干掉。总结一下,从2.x版本一路走来,大家也研究了很多保护service不被干掉的方法: 1. 最基本的,不要用bindService去开启一个服务,而是用startService,因为前者会将activity与service绑定到一起,当你的activity挂掉时,原创 2015-10-14 11:28:46 · 992 阅读 · 0 评论