- 博客(156)
- 资源 (23)
- 收藏
- 关注
原创 Android Activity 介绍
Activity 因状态变化—系统是创建 Activity、停止 Activity、恢复 Activity 还是销毁 Activity— 而收到的回调方法可能有若干种,每一种回调都会为您提供执行与该状态变化相应的特定操作的机会。这些状态转变都是 Activity 生命周期的一部分。不过,当系统为了恢复内存而销毁某项 Activity 时,Activity 对象也会被销毁,因此系统在继续 Activity 时根本无法让其状态保持完好,而是必须在用户返回 Activity 时重建 Activity 对象。
2024-04-08 15:35:36 770
原创 用Android Studio签名打包signature versions v1 v2
Android Studio 2.3版本对打包apk的签名做了更新,按照以前的打包方式,有如下提示:是说下面的v1和v2必须至少选择一个: 只勾选v1,跟以前是一样的; 只勾选v2,打包完成后安装出错:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]; 同时勾选v1和v2,还是会出现上面的错误;查看旁边的Signature Help可以了解v2签名可
2017-03-22 18:21:54 3196
原创 使用JavaCV(ffmpeg)录制视频
使用JavaCV(ffmpeg)录制视频JavaCV是对各种常用计算机视觉库的封装后的一组jar包,其中封装了ffmpeg、OpenCV、libdc1394、OpenKinect、videoInput和ARToolKitPlus等计算机视觉编程人员常用库的接口,可以通过其中的utility类方便的在包括Android在内的Java平台上调用这些接口。其中使用最多的应该就是ffmpeg了。 起初Ja
2017-03-22 17:59:35 13578 1
原创 支付宝 AR 红包辅助工具
上周支付宝退出AR红包,玩法确实不错,但是上线当天就被操翻了。笔者是周五开始玩的,当天同事说可以直接扫线索图片打开红包,由于线索图添加了防作弊的黑色条纹,所以笔者试了好多次都没打开一个,于是就放弃了。哪知下班回家在公交上在头条看到文章讲如何处理线索图增大打开红包的几率: 1.将线索图片复制一份,透明度设置为50%; 2.覆盖在原图上,并向下偏移几像素; 3.将合成后的图片用高斯模糊处理,半径设
2016-12-27 12:35:01 802 1
原创 Android View如何加载drawable资源
Android开发时难免会遇到图片加载的问题,简单的做法就是把问题丢给图片框架处理,几个主流的图片框架各有特色,这里也不展开说,今天突然想了解一下Android图片资源的加载,主要是想参考一下,view是如何加载drawable的,因为我们可以直接在UI线程直接设置view的背景res,如果这个资源图很大会不会导致ANR或者OOM? 首先从View.setBackgroundResource(in
2016-11-27 11:40:33 3954
原创 Android编程规范
命名规范1. 基本原则(1) 代码风格与android源码保持一致 (2) 命名要清晰明了、有明确含义 (3) 同一产品命名风格要保持一致,避免一意多词 (4) 同一作用域,不能有变量重名,如局部变量与全局变量重名2. 包名(1) package命名如com.brian.xx.yy.zz,xx为产品,yy为模块,zz为子模块 (2) 模块划分,按以下两种方式均可,但需要项目组统一 -
2016-10-27 12:24:40 607
原创 使用mp4parser进行音视频合成
需求:相机录制短视频,支持暂停继续,并配有背景音乐。 由于Android自带的MediaRecorder并不支持视频录制暂停,所以只能录制视频片段,最后录制结束时将之前录制的视频片段合并起来。背景音乐也是需要合成到视频中。网上搜索到的大多数解决方案是使用mp4parser,名字看上去就感觉挺上手的,后面一看包名,竟然是googlecode,所以义无反顾的使用mp4parser。 很多博客里面都有
2016-10-26 19:05:32 8311 2
原创 自定义View——可打点记录的进度条
自定义View——可打点记录的进度条项目为短视频录制的进度条,类似微信小视频,只是样式不一样。需要设定进度条总时长,还有最低时长。视频录制过程中暂停时,如果录制时长长低于最小时长,则算暂停,不能完成录制,若高于最低时长,则显示结束录制按钮,也可以继续录制。每次暂停都需要在进度条上显示一个标记。效果如下图: 先分析一下这个进度条的组成,首先是一个底色背景,然后初始化有一个最小录制时长标记,然后是
2016-10-19 23:08:52 1323
原创 Android沉浸式状态栏的实现方案探讨
多次尝试实现Android沉浸式状态栏,资料很多也很杂。并且有好几种实现方案,网上有好些资料把几种方案都混在一起,暂时把效果实现了,但是遇到问题后就蛋疼了。于是,这两天我就把从根源上把这几种方案的原理都整理了一下。主要有四种方案,有的方案还可以细分: 1. WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; 2. Window.setStatu
2016-10-08 18:06:35 840
原创 AS2.2打包:release-stripped.ap_' specified for property 'resourceFile' does not exist
刚才打包一直提示下面的问题:Error:A problem was found with the configuration of task ':app:packageBAIDURelease'.> File 'D:\AndroidStudioProjects\CodeBlog\app\build\intermediates\res\resources-BAIDU-release-stripped
2016-09-22 10:27:08 5018 6
转载 给 Android 开发者的 RxJava 详解
前言我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问: RxJava
2016-09-19 12:19:15 663
原创 OkHttp源码探索
之前一直在使用volley作为网络请求模块,但发现volley已经过时(源码还是很值得反复品味的),现在基本是Retrofit和OkHttp的天下了,于是把OkHttp拿来学习一下。 首先,看一个OkHttp的简单示例: Request.Builder builder = new Request.Builder().url(url).get(); Request o
2016-09-13 20:41:55 458
原创 Android发送邮件mark
public class MailSender { private static final String LOG_TAG = MailSender.class.getSimpleName(); private static final int PORT = 25; /** * 以文本格式发送邮件 * @param sender 发件人邮箱 * @
2016-08-30 11:36:40 683
原创 Emmagee学习之获取内存及CPU占用等数据
Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计文件。 测试QQ的效果如下: /** * 通过pid获取应用占用的内存 * @return */ publi
2016-08-30 11:28:07 1341
原创 Android沉浸式通知栏开源库SystemBarTint源码解析
前一段时间我写了一篇关于沉浸式的文章:Android实现沉浸式状态栏的那些坑 当时只是知道SystemBarTint的存在,并没有去了解它的实现效果和原理,因为搜Android沉浸式时好多都提到这个开源库,还以为很强大、很深奥,就没敢仓促的去看源码。今天把SystemBarTint拉下来一看,发现这个库仅仅只有一个类:SystemBarTintManager,全篇通读下来发现原理也是相当简单:就是
2016-08-23 15:56:31 3533
转载 jadx:更好的Android反编译工具
在jadx出现之前,我一般是使用apktool和dex2jar这两个Android反编译工具。这两个工具也有不同的侧重点,如果只是想拿到apk里的一些图片或其他资源或是查看一下布局的layout文件,直接使用apktool -d xxx.apk即可。如果是要查看一下代码实现,就使用d2j-dex2jar.sh反编译一下apk然后使用jd-gui工具查看反编译后的.jar文件。apktool+dex2
2016-08-17 17:28:31 1466
转载 Android Drawable之ShapeDrawable
OverviewShapeDrawable 根据原始的形状来绘制图形,如矩形,圆形,线条等,可以是一个纯色的色块,也可以渐变的效果。当没有设置具体的图形时,默认为矩形。创建和使用ShapeDrawable可以使用<shape>标签在xml文件中定义,但是与之前介绍的几种Drawable不同,<shape>标签指向GradientDrawable的指针,也就是说编译的类型是GradientDrawab
2016-08-16 19:32:27 3585
转载 Android Drawable之ScaleDrawable
OverviewScaleDrawable与ClipDrawable类似,可以根据设置的level值对drawable进行缩放,但与ClipDrawable不同的是,ScaleDrawable还可以根据设置android:scaleWidth和android:scaleHeight进行相应百分比的缩放。创建和使用语法:<?xml version="1.0" encoding="utf-8"?><s
2016-08-16 19:19:06 4692 1
转载 Android Drawable之ClipDrawable
OverviewClipDrawable可以根据设置的level值和方向对当前Drawable剪切后显示。它根据level的属性值,决定剪切区域的大小,level的取值范围从0到10000,level为0时完全不显示,为10000时完全显示。(The drawable is clipped completely and not visible when the level is 0 and full
2016-08-16 19:13:49 1823
转载 Android Drawable之InsetDrawable
OverviewInsetDrawable 表示一个drawable根据指定的距离嵌入到另外一个drawable内部。(我们看到的其实还是同一张图片,只是会空出一些边距)当控件需要的背景比实际的边框小的时候比较适合使用InsetDrawable。创建和使用在xml文件中使用<inset>作为根节点来定义InsetDrawable。 语法为:<?xml version="1.0" encoding=
2016-08-16 19:09:02 2788
转载 Android Drawable之TransitionDrawable
Overview从Drawable的类继承图上可以看到TransitionDrawable是LayerDrawable的子类,但是不像LayerDrawable可以有多层drawable,TransitionDrawable只能管理两层drawable,并且提供了一个透明度变化的动画,可以控制从一层drawable过度到另外一层drawable的渐变动画效果。在xml文件中使用<transition
2016-08-16 19:05:05 1026 1
转载 Android Drawable之LayerDrawable
Overview一个LayerDrawable是一个可以管理一组drawable对象的drawable。在LayerDrawable的drawable资源按照列表的顺序绘制,所以列表的最后一个drawable绘制在最上层。 在xml文件中使用<layer-list>作为根节点来定义LayerDrawable,通过item子节点定义每一层的drawable,layer-list没有属性节点,只包含i
2016-08-16 18:59:56 3577
转载 Android的Drawable体系
在官方文档中对Drawable的定义为:可绘制物件的一般抽象(A Drawable is a general abstraction for 『something that can be drawn』)。『可绘制的』本身也是个抽象的概念,而且容易让我们联想到Android里另一个较抽象的概念『View』,我们知道View也是可以绘制的,那View是不是也可以称为Drawable呢?官方的文档中也有这
2016-08-16 18:52:26 488
原创 Android实现沉浸式状态栏的那些坑
最近项目需要实现沉浸式的状态栏,其实我在之前就了解过Android的沉浸式,发现有些棘手就放弃了,但是此次是公司的项目需要的,就花了几天把这个问题搞定了,在此记录一下,并mark几个坑。 首先,沉浸式是Android 4.4及以上才有的,在后续的5.0及6.0上面都增加了一些相关支持,于是问题就不太好办了。先看我实现的效果: 首先,在4.4版本添加了WindowManager.LayoutP
2016-08-02 17:40:23 43542 17
原创 android:ellipsize实现跑马灯效果
要实现标题跑马灯效果,找了好多资料,终于搞定,在这里mark一下: <TextView android:layout_width="240dp" android:layout_height="wrap_content" android:gravity="center" android:ell
2016-07-31 16:27:49 523
原创 ViewPager实现页卡的最新方法--简洁的TabLayout(AndroidSupportDesign)
Google在2015年的Google IO大会上更新了Design Support Library,里面提供了几个封装好的MeterDesign风格控件,其中包括:TextInputLayout : 使用TextInputLayout将EditText进行了封装,提示信息会变成一个显示在EditText之上的floating label,这样用户就始终知道他们现在输入的是什么,而且过度动画是平滑
2016-06-30 21:05:35 2947
原创 Android烟花效果(SurfaceView实现)
烟花效果搜出来好像很多,但是没有太好的例子,于是自己做了一个效果,仅仅是完成了定制的需求。看下效果: 效果是,一个气泡抛物线出来,然后爆开。大致跟上次分享的点赞特效差不多,仅仅是根据需求绘制不同的效果:SurfaceView实现点赞效果把相同代码去掉了,要直接用的话拼接一下吧,这里主要是说一下绘制过程/** * 直播页面点赞特效,采用SurfaceView绘制 * 与普通控件使用方法类似,点赞
2016-06-14 19:15:25 7660 8
原创 Android滑动开关控件
先看效果 点击按钮时切换状态,也可以拖动切换。在滑动过程中,颜色透明度有渐变(本想做颜色渐变,但是对颜色计算不太懂,直接取平均值做出来很难看,故而采用透明度来调节效果)。 直接在代码里注释说明public class SlideButton extends View { private Paint paint = new Paint(); /** * false 为关闭
2016-06-08 16:03:38 869
原创 【开源项目】编程博客Android客户端——CodeBlog
业余时间写的一个开发技术博客客户端,已在应用宝和360手机助手上线。CodeBlog是为了方便在手机端阅读编程技术博文。应用展示了CSDN博客,InfoQ,开源中国和ITEye上的技术博文,并提供了技术类型的选择,如移动开发、数据库、云计算等,让你随时随地都可以轻松阅读技术大牛的文章。 目前已实现的功能: 1. 集成CSDN、InfoQ、oschina、ITEye、泡在网上的日子等技术网站上的精
2016-06-01 20:35:11 2163 6
原创 开源中国(oschina)Android客户端主页返回按钮效果实现
先看看效果 开源中国的Android客户端的返回按钮就是这样子的,刚开始看的时候感觉好酷,然后就看源码,找着找着发现其实是Android封装好了的一个控件DrawerArrowDrawable,但是这个只是在Android5.0才加入的,于是乎就看了一下这个控件的源码,发现很容易就能抠出来单独用。 于是,我用抠出来的DrawerArrowDrawable写了个demo:https://git
2016-06-01 14:06:40 567
原创 Android中dp,px,sp等单位转换
一般我们都会自己写一个dp转px或者sp转px的工具类,给个链接http://blog.csdn.net/top_code/article/details/8588703 但是今天我发现Android自带了这种转换工具类TypedValue,下面是转换的方法 /** * Converts an unpacked complex data value holding a dimens
2016-06-01 12:27:28 588
原创 Android开发中好用的开源工具(持续更新)
1. EmmageeEmmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计文件。 github:https://github.com/NetEase/Emmagee2. LeakcanaryLeakCanary
2016-04-29 10:21:56 668
原创 Android使用Handler防止内存泄漏
在Android开发中经常会使用handler做定时任务或者更新UI等,但是handler在好用的同时也是非常容易导致内存泄漏。因为handler在作为一个类的属性时会持有该类(通常是activity或fragment)的引用,而handler在发送message时,该message的target通常就是handler本身,也就是通过handler发送的消息间接持有该类的引用。当该类应当被回收,而消
2016-04-26 17:53:01 1721 2
原创 Android应用内存泄漏笔记
注册的监听回调,需要考虑移除监听;尤其是注册到单例中的监听!!!bitmap用完之后记得recycle,原因请看这里注意context(activity,fragment)的引用;注意handle的使用,由于延时消息(包含handle的引用),导致handler所在的context不能释放;解决方案看这里
2016-04-26 17:37:17 324
转载 Android 在使用Bitmap的时候为啥要手动调用recycle方法呢?
我们知道手机的内存有限,而图片所占的内存往往又很大。所以在处理图片的时候可以在服务端或者客户端提前将图片处理一下,减少其体积。另外使用Bitmap的时候可以使用SoftReference来及时释放资源。但是看到好多程序还是主动地调用Bitmap对象的recycle方法来释放资源。可能我们就有疑问了:不是java会自动回收内存吗,那干吗还要手动地去回收?要解决这个问题,我们得去看看recycle的源码
2016-04-26 11:42:40 733
原创 【Android控件】呼吸效果的动画
由于只是展示上的,就不需要使用属性动画。直接使用的补间动画,简单的动画。public class MainActivity extends Activity { private ImageView mImageView; @Override public void onCreate(Bundle savedInstanceState) { super.onCrea
2016-04-13 20:04:08 8909 1
转载 实现activity变暗的效果
有什么便捷的方式实现activity变暗的效果不要新开启Activity的方式也不要使用Dialog让背景跟Dialog出现一样,变暗,带动画。private void dimBackground(final float from, final float to) { final Window window = getWindow(); ValueAnimat
2016-03-22 17:34:31 1202
转载 应用内切换主题有哪些方案可以实现
应用内切换主题有哪些方案可以实现这里讨论的只是白天、夜晚主题切换这种场景,不涉及外部资源加载。现在要给App添加夜晚主题,所以就需要选择一种应用内部更换主题的实现方案,目前来说,比较常见的几种方式如下:Theme设置Theme来切换不同主题。优点:利用系统自带的机制实现,根据标志位setTheme()即可。缺点:在主题切换界面不重启的情况下,不能自动完成界面主题的刷新。遍历View对主题的更换,使用
2016-03-22 17:32:21 622
原创 SurfaceView实现点赞效果
项目需要实现点赞的效果,在网上找个一个解决方案: http://www.jianshu.com/p/03fdcfd3ae9c 初用一些还好,暴力测试一下发现很卡,不太好用。并且像如此麻烦的动画,确实该用 SurfaceView来实现。于是就找资料,没有找到直接能用的。最后,还是自己来实现。先看效果图: 点击屏幕时,从屏幕底部飘出随机的一个赞的图标。 demo中两个核心的东西: 1.
2016-03-08 15:34:55 1811 3
原创 图片循环滚动控件ScrollingImageView
设置一个图片,控件可以自动循环滚动,单张图片首尾拼接/** * 可滚动的ImageView控件,使用startRolling(int) 或者 startRolling(Bitmap)启动滚动 * @author brian512 */public class ScrollingImageView extends View { public final float SPEED_SLOW
2016-03-02 20:58:10 2472 2
ant-contrib.jar
2016-03-13
android-support-v4.jar解决了友盟反馈
2016-02-14
Android抓包工具tcpdump
2015-06-07
Source Insight 绿色汉化版兼容64位win8
2015-05-24
Volley编译生成的jar包
2015-02-09
ubuntu编译android环境配置脚本
2015-01-27
sqlitemanager_1.0.0.jar
2014-12-08
Genymotion plugin for Eclipse V1.0.3
2014-11-27
PilotEdit_Lite_Setup.exe
2014-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人