自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Android Studio 打包时动态修改aar 包名称

打包时动态修改aar 包名称利用AndroidStudio 打包aar时,动态修改aar的路径名称。 例如:rename com.android.aar to com.google.aar 如果这个包中有一个类(ReName.java),那么它的包名便由com.android.aar 变为了 com.google.aar。这个功能一般都是SDK开发在使用。最近一年都在为公司开发以及维护某SDK

2018-01-04 12:20:04 9528 1

原创 Android 开发微技巧

Android 开发微技巧 很多是总结的,也有很多是从其他地方复制的,放在这里备忘。1 、 Dialog 如果想要老版本也使用Material Design 风格,可以使用:android.support.v7.app.AlertDialog 2 、Toast public class Util {private static Toast toast;public static void

2017-12-02 11:53:50 361

原创 SurfaceView简单使用--可做帧动画

公司做视频直播的礼物动效。 前期调研的过程中发现很多竞品竟然都是利用帧动画做的。 利用帧动画当然不能直接加载多张图片,要知道最大的礼物有一百多张图片,有OOM的风险。 所以利用SurfaceView实现了帧动画。这样可以控制内存一直处于非常底的范围内抖动。所占的CPU也比较小。另外一种实现方案就是利用webp,直接播放webp. webp相较与SurfaceView的帧动画优势就是内存占用更

2017-12-02 11:43:18 2946

原创 Android巧妙关闭SDK中的Activity

如何关闭SDK中Activity因为博主最近一直在做商业化相关的工作,需要写用于公司内部所有项目的广告SDK。 而广告SDK内部需要集成几家广告平台的SDK,这就避免不了和很多第三方SDK打交道。但是第三方广告SDK给提供的接口总是无法满足我们产品的需求,这就需要我们去想各种千奇百怪的方法。 这篇文章的出现也是因为我们之前遇到的一个问题而引发出来。一 、需求是这样的:我们有一个广告位需要显示Ad

2017-03-24 14:42:11 2574

原创 Android 监听应用集成的SDK中的 Activity。

Android 监听应用集成的SDK中的 Activity。不是我们自己写的Activity,也就是我们无法改变其源码。那么我们监听他们什么呢? 在本篇文章主要讲监听它被点击返回键了。 当然到最后我们会发现可以监听其很多东西,这里的监听指的是在不改变其原有的逻辑,监听其行为。 例如给用户展示应用中集成的某个SDK中弹出的Activity时,用户发生了点击返回键操作,可能SDK内部自己会做一些业

2016-12-12 12:09:46 2037 2

原创 Android 并发二三事之 IntentService Handler 机制再次来袭

Android 并发第六篇。本篇介绍 IntentService 。IntentService 本身是一个 Service 。 当我们执行耗时操作时,例如下载一个文件,一般我们都会把这个操作放在 Service 中。 当然我们不能直接在 Service 中做这些耗时事情,因为四个组件都运行在主线程中,不能直接做耗时的操作。 这时我们就需要在 Service 中开启线程去做了,当耗时操作结束后,

2016-12-09 11:38:32 774

原创 Android 并发二三事之 Handler 机制的妙用 HandlerThread

Android 并发第五篇本篇会讲解如何利用 HandlerThread 实现异步操作。HandlerThread 本身其实就是一个 Thread ,但是其内部还利用 Handler 机制。 对于提交的任务(或者说是信息 Message)依次处理。 所以在介绍 HandlerThread 原理以及如果使用之前,会首先说一个 Handler 异步机制。当然 Handler, Looper, Mes

2016-11-17 11:25:19 4321 1

原创 Android 并发二三事之AsyncTask

Android 并发第四篇前言:本篇主要详解AsyncTask 的源码,关于 AsyncTask 的源码其实有太多人都写过了。这里为什么还要写, 是因为博主在并发系列中写AsyncTask的源码,是想通过从并发的角度去理解AsyncTask 为什么这样设计。 我们可以看到 AsyncTask 其中用到了 之前文章中设计到的 FutureTask, 以及Callable,线程池等等。 我们也可以

2016-11-16 14:17:20 1227

原创 Android 并发二三事之利用CountDownLatch 或 ConditionVariable实现自定义Future

Android 并发第三篇介绍如何利用 CountDownLatch 或 ConditionVariable 实现自定义Future,用于适应项目中的需求。即阻塞当前线程,等待其他线程的结果返回,其功能类似于FutureTask。首先介绍 CountDownLatch(共享锁 Java)以及 ConditionVariable(Android)。

2016-11-08 18:31:25 2029

原创 Android并发二三事之Callable,Future,FutureTask

Android 并发的第二篇,本篇还是要介绍Java 方向并发相关的知识点。主要涉及Callable与 Runnable 的关系。 Callable 如何使用, Future 概念, Future 如何使用以及 Future 的实现类 FutureTask。最后介绍如何利用Future 实现在子线程中开启子线程去请求网络。一、Callable :public interface Callable<V

2016-11-04 12:03:15 667

原创 Android 并发二三事之Java线程池

最近在项目中接触到了很多有关于多线程方面的东西,并且刚好前段时间看了Java并发编程实战那本说, 所以想将自己所了解到的,以及实际中碰到的问题总结一下。打算首先介绍一下,Java多线程相关的基础,例如Thread,Runnable。虽然这个极其的基础,但是我觉得任何东西都 绕不过基础的知识。重点会在介绍线程池,包括线程池相关类的层级结构、相关参数等。 以及在Android中有那些多线程表现形式

2016-11-04 11:34:16 1255

原创 Android 多进程浅析

前言:当应用启动后,在默认的情况下,所有的组件都会在同一个进程中。即UI进程。 但针对一些需求,我们可能需要创建其他的进程来完成任务。一 、那么如何创建其他的进程呢?通过设置 android:processAndroid中的四大组件,在使用时都需要在Manifest中声明,同样的四大组件也都支持android:process 属性。 一般我们需要这样设置<service

2016-11-02 16:42:10 495

原创 Android 利用Toolbar打造统一风格的标题栏

如何利用Toolbar打造统一风格的标题栏,并且可以动态设置当前页面Title,以及返回上一级图标。一、首先,当然需要设置所有的Activity均不需要ActionBar,在标签设置style: <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimaryDar

2016-10-25 17:04:52 7647

原创 Android 收集崩溃信息并上传

对于任何应用程序而言,线上崩溃都是不可避免的。毕竟完全依靠测试同学的测试,是无法测试出所有问题的。 所以收集线上应用崩溃的信息,并上传到服务器就显得格外重要了。收集崩溃信息并上传的步骤: 1 收集崩溃信息并保存 2 应用崩溃后如何处理 3 下次启动发送崩溃信息这里导致崩溃的异常为Java Exception,即UnChecked Exception。还有一个Native异常这里先不做讨论。

2016-10-14 16:45:10 585

原创 Android 反射工具

工具类:public class ReflectUtils { public static Method findMethod(Object instance, String name, Class<?>... parameterTypes) throws NoSuchMethodException { for (Class<?> clazz = instance.getCla

2016-09-19 12:07:05 728

原创 Android Palette 颜色提取

1 从一个需求说起。界面上面有一个卡片,卡片需要动态设置其背景颜色,而这个颜色值需要从卡片上显示的图片上获取。 这就用到了这个类: android.support.v7.graphics.PalettePalette 可以从图像中提取突出颜色。 这个类能提取以下突出的颜色: Vibrant(充满活力的) Vibrant dark(充满活力的黑) Vibrant light(充满活力的亮)

2016-09-19 10:51:31 1170

原创 Android 监听应用内Activity生命周期

从一个需求说起。得到这样一个需求任务:在集成某SDK时,该SDK会弹出自己的Activity。在这个Activity中有我们需要的信息, 但是SDK并没有暴露出相关的接口,需要我们自己想办法获取。那就引出了这个篇博客。 当我通过断点查看时,发现当该Activity走到onStart()方法时,我们需要获取数据的这个变量被赋值。 所以如果我们能够拿到该Activity的对象,并且能够知道该Act

2016-09-12 14:27:21 5541

原创 Android 内存泄露总结

关于内存泄露,很多人已经说了很多了。博主在这里就是总结一下工作中遇到的,以及看其他前辈的文章中提到的,用于警示自己的编程,也给大家一个参考。防止内存泄露情况:(0) 静态对象的生命周期和进程的生命周期是相同的。(1) Context 防止任何难以回收的对象,持有Activity 的Context。例如单例中传入了Activity 对象。 解决办法为,可以传入Appliacation的Context

2016-09-12 10:28:09 538

原创 Android Loader 加载器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-09-09 22:48:13 487

原创 RecyclerView 解析(三)

一、前言 RecyclerView 解析第三篇。 如果你对RecyclerView 没有一个基础的认识,那建议你去读前两篇博客。 第一篇博客主要是讲,RecyclerView 基本用法。RecyclerView (解析一) 第二篇博客将RecyclerView Item之间的拖动,以及滑动删除动画相关做了大概介绍。RecyclerView (解析二) 本篇博客想向各位介绍Recyc

2016-06-06 21:56:19 2665 1

原创 RecyclerView 解析(二)

一、前言 RecyclerView 第二篇。这篇主要将 RecyclerView 的拖动,滑动。如果你还不了解RecyclerView ,建议你去读RecyclerView 解析(一)二、代码: 1、先看一下效果: 要想实现这样的效果,在Android support V7包下为我们提供了一个类:ItemTouchHelper 所有RecyclerView Item上下左右拖动,滑动删除均

2016-05-28 22:49:14 815

原创 RecyclerView 解析(一)

前言 RecyclerView 已经推出很久了,一直想把自己所了解到的总结出来。正好给公司的同事做了一次RecyclerView 的分享,在这里把分享的内容发表出来。 来先看一下利用RecyclerView 实现的列表:一、初始化代码 mRecyclerView = (RecyclerView)findViewById(R.id.recyclerview); //设置布局

2016-05-28 20:17:48 796

原创 Android系统开关

一、亮度调节:/** * 判断是否开启了自动亮度调节 * * @param contentResolver * @return */ public static boolean isAutoBrightness(Context context) { boolean automicBrightness = false; try { automicBr

2015-08-05 22:10:42 1018

原创 Android 系统手电筒最强适配版

在做项目的时候,遇到了打开手电筒的功能。本来在网上相应的代码已经很多,便拿过用了。但是到了测试的阶段了说问题不断。无论是国产的手机还是三星都存在各种各样的问题。而且其代码在4.4及其以下与5.0有很大区别。今天就对这个问题进行统一的整理。一、4.4及其以下: 1、 打开手电筒:private static Camera camera;public static void flashLi

2015-07-21 21:24:58 2678 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除