安卓开发

1概述 在Android平台上,主要用到两种通信机制,即Binder机制和事件机制,前者用于跨进程通信,后者用于进程内部通信。 从技术实现上来说,事件机制还是比较简单的。从大的方面讲,不光是Android平台,各种平台的消息机制的原理基本上都是相近的,其中用到的...

在清楚了View绘制机制中的第一步测量之后,我们继续来了解分析View绘制的第二个过程,那就是布局定位。继续跟踪分析源码,根据之前的流程分析我们知道View的绘制是从RootViewImpl的performTraversals方法开始的,在此方法中依次调用了performMeasure、perform...

目前Android WebView问题越来越多,接下来由爱内测(www.ineice.com)的技术工程师为我们介绍几种常见的Android WebView问题: 1.为WebView自定义错误显示界面: /** * 显示自定义错误提示页面,用一个View覆盖在WebView */ protected void showErrorPage() {...

我们接着上文继续说,上篇博客中我们已经知道了Fresco怎么用,也知道了它的很多属性,但是很多时候xml文件是不能满足你的要求的,这就需要你在代码中动态的改变显示的内容,今天我们就来探索一下如何在代码中改变图片实现的状态和内容 前面我们已经使用过Sim...

什么是Tint 当我开始接触Tint这个词的时候,其实是蛮不理解它的意思的,以及并不清楚Google发明它的目的,它一般搭配Background配合使用,但是现在已经有了Background,为什么还需要Tint呢? Tint 翻译为着色。 着色,着什么色呢?和背景有关,当然是着背景...

ImageView有scaleType属性可以缩放图片,让图片铺满屏幕宽度,但是会出现压缩或裁剪的情况。 ImageView的scaleType的属性分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY android:scaleType='center' 保持原图...

View事件传递 touch事件分发 学习Android一年有余,今天开始以自己的理解去介绍一下Android开发常用到的基础技术。第一个介绍的是View 的事件传递机制,建议首先去看一下[codeKK中关于View事件传递介绍的文章][1],我这里只是对这个的补充以及自己理解。有不...

引言 夜间模式其实属于多主题切换的一种,不过是最麻烦的一种。因为在夜间模式下不仅要切换主色调,次要色调等等,还要覆盖一些特殊的颜色,因为在夜间模式下总不能什么都是黑的把,那不得丑死-。-,所以当你夜间模式完成后,你的App对于日后多主题的扩展就可...

摘要:本文作者贾吉鑫为大众点评Android工程师,在进行团队并行开发时,分库遇到的问题很多都要通过Gradle脚本解决。Gradle虽为构建神器,但学习曲线比较陡峭,要想在Android项目中用好Gradle必须要做到三点。 最近在忙团队并行开发的事情,主要是将各个团队...

前言 无论你的应用多么有创新性、有用,如果它卡得要命,或者非常消耗内存,那么每人将会愿意使用它。 因此,性能变得尤为重要。当你忙碌于构建精美的用户界面或者完成新的特性时,你可能容易忘却掉一些性能相关的事情。 这也是为什么有Google Play的应用审...

Android开发人员都知道,原生的模拟器启动比较慢,操作起来也不流畅,还会出现莫名的问题。当然很多人都会选择直接使用android手机来开发,但是有时候需要在投影仪上演示程序的时候手机不太好做到吧。这里我给大家介绍一款很好的android模拟器——Genymotion...

顾名思义,AndroidEventBus ( github链接 : https://github.com/bboyfeiyu/AndroidEventBus )是一个Android平台的事件总线框架,它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码更加简洁,耦合性更低...

在Android的输入框中加入清除按钮,是很常见的设计,本文介绍如何创建一个控件,在输入框中加入清除按钮。 我们来看看实现这个控件都需要做什么: 清除按钮在输入框中有内容时出现 清除按钮必须出现在输入框内 点击清除按钮,清除输入框中的所有内容 清除按...

项目介绍 gradle-packer-plugin 是Android多渠道打包工具Gradle插件,可方便的于自动化构建系统集成,通过很少的配置可实现如下功能 : 支持自动替换AndroidManifest文件中的meta-data字段实现多渠道打包 支持自定义多渠道打包输出的存放目录和最终APK文件名...

介绍 在知乎客户端上看到了这种效果,左滑Activity可以返回到上一界面,非常适合单手操作。 找了很久,终于在github上看到了SwipeBackLayout这个开源项目,地址: https://github.com/ikew0ng/SwipeBackLayout 实现 需要使用到的类: SwipeBackActivity.java...

在android上,视频/音频流直播是极少有人关注的一部分。每当我们讨论流媒体,RTMP(Real Time Messaging Protocol)是不可或缺的。RTMP是一个基本的视频/音频直播流协议,但是不幸的是Android标准的VideoView不支持RTMP的播放。因此,如果想在android上播放RTMP...

在Android设备上面,快速高效的显示图片是极为重要的。过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题。图片太大,但是手机的内存却很小。每一个像素的R、G、B和alpha通道总共要占用4byte的空间。如果手机的屏幕是480*800,那么一张屏幕大小的图...

1、概述 Binder能干什么?Binder可以提供系统中任何程序都可以访问的全局服务。这个功能当然是任何系统都应该提供的,下面我们简单看一下Android的Binder的框架 Android Binder框架分为服务器接口、Binder驱动、以及客户端接口;简单想一下,需要提供一个全...

OnTrimMemory 回调是 Android 4.0 之后提供的一个API,这个 API 是提供给开发者的,它的主要作用是提示开发者在系统内存不足的时候,通过处理部分资源来释放内存,从而避免被 Android 系统杀死。这样应用在下一次启动的时候,速度就会比较快。 本文通过问答的...

工作以来公司UI设计师出的Android效果图都是iOS风格的Titlebar,新项目还是用原来那一套,不想重复造轮子,所以趁着这次练习 仿新浪微博Android客户端,抽取一个通用的iOS风格的Titlebar 但是作为Android开发者,平时学习练手时还是得紧跟Google的步伐,说不...

一、概述 说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写。如果你对这个过程不熟悉,可以查看Android aidl Binder框架浅析; 当然今天要说的通信方式肯定不是通过编写aidl文件的方式...

Gradle简介 Gradle是一个基于Ant和Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,这比我们的 ANT使用XML构建配置要灵活的多。在编写配置时,你可以像编程一样灵活,Gradle是基于Groovy的DSL语言,完全兼容JAVA Gra...

bitmap compress 是官方给出的图片质量压缩,通过试验学习了这个压缩的特性如下: 它是图片质量压缩,不会改变图片的分辨率 bitmap.compress(Bitmap.CompressFormat.JPEG, option, bos); 三个参数说明,1.图片压缩后的格式 2.图片压缩比例 3.压缩后得到的数...

前言 为了进行代码及产品保护,几乎所有的非开源App都会进行代码混淆。这样,当收集到崩溃信息后,就需要进行符号化来还原代码信息,以便开发者可以定 位Bug。基于使用SDK和NDK的不同,Android的崩溃分为两类:Java崩溃和C/C++崩溃。Java崩溃通过mapping.txt...

介绍 Android测试支持库包含 UI自动化模块 ,它可以对Android应用进行自动黑盒测试。在API Level 18中引入了自动化模块,它允许开发者在组成应用UI的控件上模仿用户行为。 在这个教程中,我将展示如何使用此模块来创建和执行一个基本的UI测试,选择默认的计...