Android
乐天无忧
Android开发,智商250。
展开
-
Android:学习AIDL,这一篇文章就够了(下)
前言上一篇博文介绍了关于AIDL是什么,为什么我们需要AIDL,AIDL的语法以及如何使用AIDL等方面的知识,这一篇博文将顺着上一篇的思路往下走,接着介绍关于AIDL的一些更加深入的知识。强烈建议大家在看这篇博文之前先看一下上一篇博文:Android:学习AIDL,这一篇文章就够了(上)注:文中所有代码均源自上一篇博文中的例子。 另:在看这篇博文之前,建议先将上一篇博文中的代转载 2017-04-25 10:20:40 · 455 阅读 · 0 评论 -
Android内存泄漏分析
Android内存泄漏是一个经常要遇到的问题,程序在内存泄漏的时候很容易导致OOM的发生。那么如何查找内存泄漏和避免内存泄漏就是需要知晓的一个问题,首先我们需要知道一些基础知识。Java的四种引用强引用: 强引用是Java中最普通的引用,随意创建一个对象然后在其他的地方引用一下,就是强引用,强引用的对象Java宁愿OOM也不会回收他软引用: 软引用是比强引用弱的引用,在Ja转载 2017-02-04 17:10:32 · 280 阅读 · 0 评论 -
Android的.so文件、ABI和CPU的关系
早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。应用程序二进制接口ABI(Application Bi转载 2017-01-13 16:05:44 · 325 阅读 · 0 评论 -
Android Application启动流程分析
作者曾经在高通的Android性能组工作, 主要工作是优化Android Application的启动时间.1, App基础理论要想优化App启动时间, 第一步就是了解App启动进程的工作原理. 有几个基础理论:Android Application与其他移动平台有两个重大不同点:每个Android App都在一个独立空间里, 意味着其运行在一个单独的进程中, 拥有转载 2017-01-13 16:00:32 · 624 阅读 · 0 评论 -
Android Retrofit 上传文件图片
通过前两篇姿势的入门Retrofit 2.0超能实践,完美支持Https传输Retrofit2.0完美同步Cookie实现免登录本文出自:http://blog.csdn.net/sk719887916/article/details/51755427 码小白通过对Retrofit2.0的前两篇的基础入门和案例实践,掌握了怎么样使用Retrofit访问网络,加入转载 2016-12-20 18:34:12 · 3740 阅读 · 0 评论 -
Android 6.0权限申请
一、概述随着Android 6.0发布以及普及,我们开发者所要应对的主要就是新版本SDK带来的一些变化,首先关注的就是权限机制的变化。对于6.0的几个主要的变化,查看查看官网的这篇文章http://developer.android.com/intl/zh-cn/about/versions/marshmallow/android-6.0-changes.html,其中当然包含Runtim转载 2016-12-20 18:32:24 · 253 阅读 · 0 评论 -
Android 水瓶动画,贝塞尔Loading
谈到贝塞尔曲线,很多人会觉得高逼格、复杂、头疼,实则不然,贝塞尔曲线经过android封装,已经显得娇俏可爱,简单好用,之前一些红极一时的效果也均是由其打造,比如QQ的“一键退潮”效果、电子书曲面翻页效果…… 现在咱们就用贝塞尔曲线一起从0到1打造一个拥有极致体验、清秀灵动的GABottleLoading效果; 好了,不多吹NB了,老规矩先上一个原始效果图:转载 2017-01-06 17:13:21 · 1602 阅读 · 1 评论 -
一键接入Tinker
背景Tinker开源挺长时间了,使用的开发者也越来越多,对于一些小白开发者来说对接Tinker的成本还是挺高的,其中主要因素还是不能理解为什么Application要修改成ApplicationLike,以及改造后对项目中使用Application的地方也要同步修改。在上篇文章Android热补丁之Tinker原理解析中我们已经讲解了这样做的目的以及Tinker的加载补丁的流程,本转载 2017-01-06 17:11:38 · 457 阅读 · 0 评论 -
Android热补丁之Tinker原理解析
本文分析版本 93ecc9351367badc02a91fac25764bee50e6e6a6项目地址: Tinker背景在今年的MDCC大会上,微信开发团队宣布正式开源Tinker,在这之前微信团队已经发出过一些Tinker的相关文章,说实话在开源之前我们还是相当期待Tinker开源的,一方面是因为之前使用的热补丁一直存在一些兼容性问题,另一方面也好奇Tinker的实现方转载 2017-01-03 17:29:13 · 3485 阅读 · 0 评论 -
Android Studio 2.2的新功能
Android Studio 2.2 现在可以下载。Android Studio 2.2 已在 Google I/O 2016 上预展,是全球各地数百万 Android 开发者使用的 IDE 最新版本。 此版本包含增强功能,主要面向三大主题:速度、智能和 Android 平台支持。通过新增的布局编辑器等功能加快开发速度,快速而直观地创建应用用户界面。利用新增的 APK 分析器、增强转载 2017-01-03 15:26:57 · 342 阅读 · 0 评论 -
android studio - freeLine安装
一、定义你还在为忍受gradle编译个几十秒的痛苦吗?召唤阿里神器 “freeline“秒编译超级速度,能让你一天节省1-2小时花在编译上的时间。环境要求:1)Gradle的版本必须是2.1.4+。二、搭建freeline1、打开你的android studio ->file->settings->plugins转载 2016-12-22 16:26:23 · 456 阅读 · 0 评论 -
Gradle 的使用 (持续更新中)
compile('me.drakeet.multitype:multitype:2.3.0', { exclude group: 'com.android.support' }) compile 'com.android.support:recyclerview-v7:你选择的版本'exclude group ‘ ’ 可以去除库里你不想要的类库原创 2016-12-15 16:22:08 · 250 阅读 · 0 评论 -
Android 客户端安全指南
预览:本文将着重讲解 Android KeyStore、so 库保护 app key / secret、HTTPS 原理及其防中间人攻击措施。谈到 Android 安全性话题,Android Developers 官方网站给出了许多很好的建议和讲解,涵盖了存储数据、权限、网络、处理凭据、输入验证、处理用户数据、加密等方方面面,甚至对于动态加载代码也提供了建议,具体可以看看 training转载 2016-12-15 15:37:24 · 4001 阅读 · 0 评论 -
Android Can't convert to dimension: type=0x1
错误原因: 当res目录下的values目录下的默认dimen没有引用的dimen值的时候就会报这个错误。 解决方法: 在默认的dimen中添加没有添加的dimen值。错误截图:原创 2016-12-14 16:58:59 · 1660 阅读 · 0 评论 -
利用动态加载实现手机淘宝的节日特效
相信去年圣诞节打开过手机淘宝的童鞋都会对当时的特效记忆犹新吧:全屏飘雪,旁边还有个小雪人来控制八音盒背景音乐的播放,让人有种身临其境的感觉,甚至忍不住想狠狠购物了呢(误),大概就是下面这个样子滴:嗯,确实很炫,那么我们一步步去分析是如何实现的:一、实现下雪的 View首先,最上面一层的全屏雪花极有可能是一个顶层的View,而这个View是通过动态加载去控制显示的(不更新淘宝转载 2016-12-16 16:43:52 · 471 阅读 · 0 评论 -
Android OOM出现常见原因及解决办法
在前公司做一个图片处理的应用时, 项目交付的时候,客户的手机在运行应用的时候,一直在崩溃,而这个异常就是OutOfMemory的错误,简称为OOM, 搞得我们也是极其的崩溃,最后 ,我们是通过网上搜集资料和代码走查的方式来优化解决的,这里,我就把我们收集到资料和总结的经验分享下吧。 Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M,有的机器为24M。我们平转载 2016-12-08 16:13:46 · 530 阅读 · 0 评论 -
Android EventBus 内部机制介绍
常用的事件传递方式包括:Handler、BroadcastReceiver、Interface 回调、事件总线EventBus,除去回调这种相对简单的多的方式我们不讨论,Handler的原理已经在之前分析过,接下来要分析的就是EventBus以及BroadcastReceiver,然后最后分析他们各自有优劣以及适用场景。今天的主角就是EventBus因为整个分析下来,EventBus涉及到转载 2017-02-06 14:03:41 · 607 阅读 · 0 评论 -
比较实用又不常见的Android API
这将是一个关于Android Api的系列文章,AntSoft的Android 团队一直紧随技术前沿,在Budapest University of Technology and Economics培训Android技术已经有8年多的时间。公司里有个传统就是每周进行技术分享,这里将介绍一些Android平台上有意思的API。当前Android已经有了非常多可用的依赖库(Library),但转载 2017-01-16 15:16:36 · 476 阅读 · 0 评论 -
Android:学习AIDL,这一篇文章就够了(上)
前言在决定用这个标题之前甚是忐忑,主要是担心自己对AIDL的理解不够深入,到时候大家看了之后说——你这是什么玩意儿,就这么点东西就敢说够了?简直是坐井观天不知所谓——那样就很尴尬了。不过又转念一想,我辈年轻人自当有一种一往无前的锐气,标题大气一点岂不更好?并且大家都是文明人,总归更多的是理解与补充而不是侮辱与谩骂?所以最终还是厚颜用了这么一个不怎么有耻的标题。好了,接下来进入正题,转载 2017-04-25 10:19:24 · 373 阅读 · 0 评论 -
TCL 电视系统二次开发问题
TCL L40P1A-F 型号上基于Android4.4定制的电视系统会有以下限制:1.可以直接通过wifi连接,可以通过adb命令上传Apk,但是不能安装,会提示没有该应用启动的 Activity 误导错误或者被PM拒绝,估计是TCL修改系统源码,限制的。2.如果系统内有该应用,通过adb install packagename 会上传Apk,但是不会安装更新,会启动电视内原有的应用。原创 2017-04-21 10:01:32 · 2071 阅读 · 0 评论 -
Android ListView的EmptyView处理
大家都对ListView非常熟悉,目测也会经常使用ListView的一个方法setEmptyView,来设置当数据加载中或者数据加载失败的一个提醒的效果,这个方法虽然使用起来简单,但是如果你提供一个复杂的布局,例如:在数据加载失败后,添加一个Button让用户可以选择重新加载数据。那么,你可能会这么做,find这个button,然后给button设置点击事件,好吧。。。一个转载 2017-04-14 17:12:12 · 465 阅读 · 0 评论 -
安卓Android蓝牙基本操作
蓝牙是一种支持设备间近距离传输数据的无线电技术,支持有蓝牙功能的设备一般有:手机,笔记本电脑,无线蓝牙耳机等。该小例子就要是获取手机蓝牙基本信息及打开关闭蓝牙操作。public class MainActivity extends Activity implements View.OnClickListener { private static final int OPEN_REQ转载 2017-04-14 17:05:02 · 644 阅读 · 0 评论 -
你知道几种单例模式?
大家好,先简单自我介绍一下啊,我呢现在是在做Android这一块,做这一块大概快两年了。工作地是在河南郑州。在开始之前呢,首先感谢一下宇明兄弟啊,因为自己当初写博客的习惯是通过他的启发才开始,现在又做这一块语音文字的方式分享技术,我感觉挺有意义的,通过这种分享不仅能让那些对分享内容感兴趣的人学到知识,更重要的是分享着本人也能对知识有个更深的理解,当然如果有不理解或者疑问的地方,也能和大家讨论解决困转载 2017-04-10 14:38:07 · 572 阅读 · 0 评论 -
android 7.1特性
What's new in Android 7.1 Nougat?Android 7.1 Nougat 已经推出有一段时间,相信大多数人和我一样,并没有用上最新的系统,但是,总有一群走在时代的前列线上的Geek们,勇于尝鲜,艰苦奋斗,为刷新版本号贡献自己的力量。好吧,实际上就是我还没有用上7.1,有些眼馋了。那么,和开发者息息相关的有哪些新特性呢?Android 7.1 N转载 2017-02-04 14:32:20 · 6645 阅读 · 0 评论 -
简洁移动的Java代码模拟Android Handler机制,值得一看!!
Handler机制简介Handler是android中最重要组成部分之一,Handler机制可以看做是一个消息阻塞队列,APP启动后很快就进入死循环(while循环),不断的读取消息队列中的消息,每个线程最多只有一个消息队列,没有消息时就阻塞,有就立马执行。所有消息排队执行,因为是一个线程,所以同时只能执行一个消息。android的view绘制,事件响应(点击,触摸屏幕等)都是把消息发送到转载 2017-02-20 11:03:54 · 526 阅读 · 0 评论 -
android LocalBroadcastManager的使用
我们都知道Android的四大组件,分别是:Activity, Service,ContentProvider以及BroadcastReceiver,实际开发中前两者接触的更多一点,后面两个虽然不怎么常用但是偶尔也会接触到,今天我们要说的就和BroadcastReceiver有关,当我们想要去使用BroadcastReceiver会看到官方的提示:如果你不需要应用间的通信,可以考虑使用LocalB转载 2017-02-09 16:51:53 · 827 阅读 · 0 评论 -
android xml转义符
如果一段文字需要多个TextView拼贴,比如:“我叫XXX,今年XX岁了,身高X.X米”;可以考虑引用string.xml文件中预定义的字符串拼接实现.例子:1.在string.xml中先定义好格式String.xml字符转义拼接: 我叫 %1$s,今年 %2$d岁了,身高 %3$f米。2.代码中这样实现 TextView tv转载 2017-02-09 16:24:31 · 387 阅读 · 0 评论 -
Introduction to Model View Presenter on Android
This article is a step-by-step introduction to MVP on Android, from a simplest possible example to best practices. The article also introduces a new library that makes MVP on Android extremely simple.转载 2017-01-12 15:51:10 · 307 阅读 · 0 评论 -
Android Studio 设置重新打开后不打开上一个项目
有时候不止一个项目的时候可能会有困恼,每次都打开上一个项目,然而上一个打开的项目又不是自己想要打开的项目。国外一般一个人就一个项目吧,所以默认就是这样的选项,重新打开Android Studio的时候就重新打开上一个项目,如果只有一个项目的时候确实挺方便的。1.首先打开Android Studio ,点击右上角的File 2.点击settings 选项,原创 2017-01-17 09:06:10 · 2091 阅读 · 0 评论 -
Android 适配 (持续更新)
1. 程序启动图标:LDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px。MDPI (Medium Density Screen, 160 DPI),其图标大小为 48 x 48 px,通常分辨率320*480。HDPI (High Density Screen, 240 DPI),其图标大小为 72 x 72 px,通常分原创 2017-02-07 16:00:36 · 502 阅读 · 0 评论 -
Android RxPermissions 安卓权限适配
RxPermissions项目地址:https://github.com/tbruyelle/RxPermissions1.简介RxPermissions是基于RxJava开发的用于帮助在Android 6.0中处理运行时权限检测的框架。在Android 6.0中,系统新增了部分权限的运行时动态获取。而不再是在以前的版本中安装的时候授予权限。对于运行时的权限获取转载 2017-01-16 15:52:14 · 1787 阅读 · 0 评论 -
Android中的MVVM
前言“Architecture is About Intent, not Frameworks” - Robert C. Martin (Uncle Bob)Uncle Bob 的这句话套在 MVVM 上也是适用的, MVVM 也仅仅是架构模式(Architectural pattern),其有一套自己的理论概念(pattern)而不是规定的具体实现(或 Framework转载 2017-01-16 15:45:21 · 446 阅读 · 0 评论 -
Android 中MVC,MVP和MVVM
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写着就变成了MVC,久而久之就对它们三个的选择产生了恐惧感,如果你也是这样的人群,那么这篇文章可能会对你有很大的帮助,希望大家看完都会有收获吧!文章重点:(1)了转载 2017-01-16 15:41:06 · 319 阅读 · 0 评论 -
Android EditText 点击“下一个”跳转到指定的EditText 和inputType 参数类型说明
1. android:imeOptions="actionNext"2. android:nextFocusForward="@+id/editText3"// editText3是要跳转到的EditText转载 2016-11-25 16:20:34 · 1214 阅读 · 0 评论 -
Android EditTextView 设置输入英文字母全部大写
1. EditTextView 继承自TextView 2. TextView 下面有一个方法 : setTransformationMethod,这个方法接受参数类型为:TransformationMethod,是一个借口,如下图:我们可以看到TransformationMethod这个类并没有我们需要的方法,看一下他的实现类,有下面这五个,看名字,第一感觉就是点Repl原创 2016-11-25 16:07:36 · 5593 阅读 · 0 评论 -
Android 颜色取值工具推荐
1.FastStone 无论取色还是录制视频都是非常不错的一款工具哦2.Android Studio 2.2 版本 下点击颜色设置就可以自己选择颜色的,而且可以马上看到颜色效果,适合没有美工的小公司原创 2016-10-25 15:00:39 · 1038 阅读 · 0 评论 -
Android 代码混淆
综述毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。首先,这里说的的混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依靠 ProGuard,混淆流程将主项目以及依赖库中未被使用的类、类成员、方法、属性移除,这有助于规避64K方法数的瓶颈;同时,将类、类成员、方法重命名为无意义的简短名称,增加了逆向工程的难度。而依靠 Gr转载 2016-10-25 13:56:21 · 386 阅读 · 0 评论 -
Android SharedPreference
看文章之前,首先思考一个问题:SharedPreference支持多进程吗?如果你知道的话,下面的内容可能对你没有太大的帮助,可以快读阅读,复习一下或者指教我写的不对的地方,如果你犹豫不决,或者不知道的话,下面的内容可能会对你有些帮助。SharedPreferences多进程为什么会突然写这篇文章呢,主要是我昨天在用SharedPreferences的时候,涉及到多进程访问,写转载 2016-10-25 13:49:34 · 240 阅读 · 0 评论 -
Android dex文件结构及其应用
Android dex文件结构及其应用转载 2016-11-04 09:54:38 · 1410 阅读 · 0 评论 -
Support Library 25.0.0
Support Library 25.0.0伴随着Android 7.1(API 25)的的发布,一系列相关的开发工具与套件也一起更新了,包括Android Studio 2.2.2与Support Library 25.0.0。其中AS的更新包括日常的bug修复与性能提升,还有对7.1的支持。而Support包的更新如下:Important changesContextCom转载 2016-10-24 11:34:27 · 1023 阅读 · 0 评论