![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 69
DreamChanDev
个人博客: www.dreamchan.cn
展开
-
Android SDK 源码解析项目
android sdk 源码解析——旨在帮助Android开发者更好的学习Android!地址:https://github.com/LittleFriendsGroup/AndroidSdkSourceAnalysis 已发布文章第一期Class分析者校对者版本发布时间Binder源码解析转载 2016-08-13 22:38:19 · 2046 阅读 · 1 评论 -
Android应用开发性能优化完全分析
1 背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网上也转载 2016-07-19 22:39:50 · 2346 阅读 · 0 评论 -
Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作
1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能 2、AlarmManager的常用方法有三个: (1)set(int type,long startTime,PendingIntent pi);转载 2016-08-06 19:07:38 · 1018 阅读 · 0 评论 -
LeakCanary 中文使用说明
LeakCanaryAndroid 和 Java 内存泄露检测。“A small leak will sink a great ship.” - Benjamin Franklin千里之堤, 毁于蚁穴。 -- 《韩非子·喻老》转载 2016-08-06 10:24:40 · 521 阅读 · 0 评论 -
Android-transulcent-status-bar总结
这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!最近业务上看到一个设计图挺好看,所以研究了一下透明状态栏,注意不是沉浸式状态栏,在参考了网上的一些资料后,整理出了这篇博客.Github Demo 链接: StatusBarCompat参考文章:由转载 2016-07-22 11:16:49 · 714 阅读 · 0 评论 -
picasso-强大的Android图片下载缓存库
picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步加载:1Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").in转载 2016-08-04 22:58:30 · 437 阅读 · 0 评论 -
android TextView中文字通过SpannableString设置属性
在Android中,TextView是我们最常用的用来显示文本的控件。 一般情况下,TextView中的文本都是一个样式。那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。[java] view plain copy转载 2016-07-21 16:45:26 · 468 阅读 · 0 评论 -
Android App的设计架构:MVC,MVP,MVVM与架构经验谈
本文由周鸿博创作,转载需署名作者且注明文章出处:http://www.tianmaying.com/tutorial/AndroidMVC和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计:我的App需要应用这些设计架构吗?MVC,MVP等架构讲的是什么?区别是什么?本文就来带你分析一下转载 2016-08-01 12:23:28 · 594 阅读 · 0 评论 -
一个经典例子让你彻彻底底理解java回调机制
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中转载 2016-07-21 01:09:49 · 383 阅读 · 0 评论 -
ButterKnife框架原理和使用
大部分Android开发应该都知道@JakeWharton 大神的ButterKnife注解库,使用这个库我们可以不用写很多无聊的findViewById()和setOnClickListener()等代码 ButterKnife项目的主页在这里:http://jakewharton.github.io/butterknife/ 简单介绍一下使用方法:public class ExampleAc转载 2016-08-08 10:34:33 · 762 阅读 · 0 评论 -
Bugly Android 快速接入使用文档
一、库文件导入如果您使用Gradle编译Apk,我们强烈推荐您使用自动接入方式配置库文件(JCenter仓库)。方式1:自动导入(推荐)在Module的buid.gradle文件中添加依赖和属性配置: android { defaultConfig { ndk { //设置支持的S转载 2016-08-08 23:16:17 · 796 阅读 · 0 评论 -
Android中那些让你相见恨晚的类-接口-方法
Part 1:Activity.startActivities() 常用于在应用程序中间启动其他的Activity。 TextUtils.isEmpty() 简单的工具类,用于检测是否为空。(可同时判断”“和null哦) Html.fromHtml() 用于生成一个Html,参数可以是一个字符串.个人认为它不是很快,所以我不怎么经常去用.(我说不经常用它是为了重点突出这句话转载 2016-08-13 22:17:07 · 805 阅读 · 0 评论 -
Android开发方法数超过65535的解决办法
一. 导包从sdk\extras\Android\support\multidex\library\libs 目录将android-support-multidex.jar导入工程中Android studio 可以在gradle中之间添加 compile 'com.android.support:multidex:1.0.0' 二. 初始化multidex如果你的工程中已经含有Ap原创 2016-08-12 11:39:39 · 533 阅读 · 0 评论 -
深入理解Android View的构造函数
我经常看到关于Android Vie构造方法的困惑。为什么有四个构造方法?每个参数是做什么的?我需要实现哪个构造方法?如果你想要一个直接而实际的建议,这里有几个不错的指导原则:在代码中创建View的时候用View(Context)。当从XML inflate view的时候重写View(Context, AttributeSet)。剩余的知识其实可以忽略,因为你很可能并不需要。对于那些仍和我转载 2016-08-11 22:16:56 · 467 阅读 · 0 评论 -
给创业码农的话--如何提升开发效率
开篇先友情提示一下,此篇文章所谈论的部分技术点与微信关联不大,如有描述不准确的地方,也欢迎大家指出与讨论。笔者去年从微信团队“毕业”,变成一个创业码农,期间也踩过一些坑,这里与大家分享一些我个人的经验。微信的整体氛围很像创业公司,快速、高效。但微信团队对技术的挖掘还是很深的,这一点在创业公司比较难做到。创业公司更追求快速、稳定的做出功能,完成迭代。下面给大家介绍一点我个人觉得很转载 2016-07-25 16:35:31 · 1268 阅读 · 0 评论 -
Android 中线程间通信原理分析:Looper, MessageQueue, Handler
在我们去讨论Handler,Looper,MessageQueue的关系之前,我们需要先问两个问题:这一套东西搞出来是为了解决什么问题呢?如果让我们来解决这个问题该怎么做?以上者两个问题,是我最近总结出来的,在我们学习了解一个新的技术之前,最好是先能回答这两个问题,这样你才能对你正在学习的东西有更深刻的认识。第一个问题:google的程序员们搞出这一套东西是转载 2016-08-10 19:32:52 · 693 阅读 · 0 评论 -
Android 开发最佳实践
从Futurice公司Android开发者中学到的经验。遵循以下准则,避免重复发明轮子。若您对开发iOS或Windows Phone 有兴趣,请看iOS Good Practices 和 Windows client Good Practices 这两篇文章。摘要使用 Gradle 和它推荐的工程结构 把密码和敏感数据放在gradle.properties 不要自己写 HTTP客户端,使用Vo转载 2016-08-07 16:59:38 · 479 阅读 · 0 评论 -
安卓调试神器-Stetho(Facebook出品)的使用
前言Chrome的Developer Tools对于WEB开发者来讲几乎是一个神器,而Chrome Store里也有无奇不有的插件,如果Chrome能调安卓应用应该是一件美好的事,而Facebook开源的一个工具Stetho让Chrome调试android 应用不再是一个梦。安卓在调试时,有时候需要查看数据库,SharePreference等,而这个前提是必须root,另一方面,andoird的网络转载 2016-08-21 15:21:28 · 667 阅读 · 0 评论 -
Gradle build设置自动log开关
应用场景通常情况下我们的apps发布后也就是release模式下log是不显示的,debug模式下是显示log的,但是在特殊情况下我们测试release包的时候需要log的时候,就无法使用BuildConfig.DEBUG来达到要求,因为在release模式下自动设置为false,debug模式下是true,这个时候我们需要自定义可控制的log开关。Android Studio 对转载 2016-08-02 20:19:05 · 603 阅读 · 0 评论 -
Android 的 LiveReload — jimu Mirror
用过 Sketch 的朋友应该都知道一个叫 Mirror 的功能,它可以将你的设计稿放到手机上预览,为设计师们提高了不少效率。而今天我要介绍的 jimu Mirror ,和 Sketch Mirror 类似,可以将 Android 的 xml 实时放到手机上预览。但是现代化的 IDE 都已经提供在 IDE 内实时预览 xml 的功能,jimu Mirror 有啥用呢?有用!还是相当有用!转载 2016-08-09 10:56:52 · 987 阅读 · 0 评论 -
android Spinner控件详解
Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。上图显示的是Spinner常见的样式。这篇文章中我将讨论1.Spinner的基本用法 2.设置Spinner的Adapter (arrayadapter 和自定义Base转载 2016-08-03 14:55:01 · 523 阅读 · 0 评论 -
Android编程:解决异常“android.view.InflateException: Binary XML file line # : Error inflating class”
今天写程序发现一个问题,就是XML中报出android.view.InflateException异常,可能的原因有:1.XML中使用到得组件名称是否书写正确(包名+类名),可以使用crtl+鼠标点击看能不能跳转到该组件的定义的地方,可以的话就不是这个问题,如果不可以的话,就是这个问题2.抛出异常时的main.xml与自定义View类相关代码如下:就是自定义的组件中的构造方法有没有原创 2016-07-20 14:34:17 · 1601 阅读 · 0 评论 -
Android消息处理机制:Handler|Message
在日常开发中,不管出于什么目的,我们可能都会用到Handler来异步更新UI,有时是为了将一些费时的操作放到异步线程去处理,然后通过Handler将数据更新到UI线程,有时是为了在子线程里更新UI,种种原因,反正我们最后都是选择了直接的Handler+Message组合或者AsyncTask,而了解AsyncTask的同学都知道,AsyncTask内部就是通过Handler和Message实现的线转载 2016-07-24 18:53:19 · 383 阅读 · 0 评论 -
Android中的事件分发和处理
基础储备 View、MotionEvent我们都能详细地说出Android的四大组件:Activity,Service,ContentProvider和BoardcastReceiver,但是四大组件之外,我们用到也很多的是什么,其中肯定包括View,View是用户跟程序沟通的入口,也是程序展现给用户信息的窗口。关于View,一些基础属性还是要了解的,left,top,right,bottom转载 2016-07-24 18:26:12 · 366 阅读 · 0 评论 -
详解OkHttp
1,整体思路从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的,实现方案上有什么技巧,有什么范式。全文基本上是对 OkHttp 源码的一个分析与导读,非常建议大家下载 OkHttp 源码之后,跟着本文,过一遍源码。对于技巧和范式,由于目前我的功力还不到位,分析内容没多少,欢迎大家和我一起讨论。首先放一张完整流程图(看不懂没关系,慢慢往后看):2,转载 2016-07-24 15:48:35 · 667 阅读 · 0 评论 -
Android Binder设计与实现 - 设计篇
Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和Binder通转载 2016-07-23 22:52:37 · 315 阅读 · 0 评论 -
Android中Strings.xml使用占位符示例
利用String文件中的一些占位符,可以在应用中组合一些要显示的文字。String文件[html] view plain copy string name="book">书名 (字符串)%1$s,作者(字符串)%2$s,编号(整数)%3$d,价格(浮点型):%4$.2fstring> 代码:原创 2016-07-20 14:06:13 · 1504 阅读 · 0 评论 -
TabLayout使用遇到的问题
1.引入库的版本号不一致: 报错如下java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/internal/widget/TintManager;这个问题倒是很好解决,只要把下面调成一样,就能编译过去了compile 'com.android.support:appcom原创 2016-07-23 16:44:30 · 2026 阅读 · 0 评论 -
Android AsyncTask 源码解析
1、概述相信大家对AsyncTask都不陌生,对于执行耗时任务,然后更新UI是一把利器,当然也是替代Thread + Handler 的一种方式。如果你对Handler机制还不了解,请看:Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系。2、简单的例子相信大家都写过这样的代码:[java] vi转载 2016-07-22 17:20:49 · 285 阅读 · 0 评论 -
Android-->EventBus 3.0新版使用说明(及其使用方法)
版权声明:欢迎转载,转载请注明出处-->http://blog.csdn.net/angcyo QQ群:274306954EventBus 在新版中取消了原来的使用方式 public void onEvent(MessageEvent event) { log(event.message); }123123 public void onEven转载 2016-06-21 15:50:15 · 368 阅读 · 0 评论 -
Android中级篇之Fresco-加载图片基础[详细图解Fresco的使用
Fresco简单的使用—SimpleDraweeView百学须先立志—学前须知:在我们平时加载图片(不管是下载还是加载本地图片…..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该呈现正在加载时的图像,当图片加载失败时应该呈现图片加载时的图像,当我们重新加载这张图片时,应该呈现重试时图像,直到这张图片加载完成。这些繁琐并且重复的如果得不到简化的话,那将是一个开发转载 2016-06-22 17:06:34 · 594 阅读 · 0 评论 -
数据交换格式FlatBuffers介绍
原文:http://www.csdn.net/article/2015-08-31/2825579 JSON——大家可能都知道它是几乎所有现代服务器都使用的轻量级数据交换格式。它体量轻,可读性强,通常比老式的、不友好的XML开发起来更加便捷友好。JSON是不依赖于开发语言的数据格式,但是在解析数据并将其转换到如Java对象时,会消耗我们的时间和存储资源。几天前,Facebook宣布转载 2016-07-24 19:16:37 · 3622 阅读 · 0 评论 -
Android原型设计工具探索
移动开发者、移动产品经理和交互设计师在有了产品的想法后会做出一系列的草图,然后反复推敲改进,直到自己满意。这个草图就是原型设计,是产品设计初期很重要的工作,它是产品的雏形,之后会以此为原型进行开发。当移动互联网热度增加后,一些主打移动原型设计的工具如雨后春笋般冒了出来。在我看来,一个好的工具对产品还是帮助很大的,但遗憾的是,绝大多数的工具都是收费的。 下面列出我试用的工具。 1.f转载 2016-07-25 14:27:43 · 488 阅读 · 0 评论 -
Android 的欢迎引导页
前言纵观android市面上的所有APP,没有一个页面不具备欢迎引导页,可以看出引导页面的魅力有多大,引导页面能迅速抓住用户的眼球,让用户很快的了解该app的主打方向。一个好的引导页让人看了就喜欢,甚至于达到卸载重装看引导页的地步。那么,市面上的app引导页都是用什么做的呢。我大致分为3类。1. 普通的viewpager页面这是最普通的一种了,很多app就是这个,这个在刚转载 2016-07-19 18:27:28 · 951 阅读 · 0 评论 -
Android 数据库升级解决方案
请考虑如下情况:在数据库升级时,不同版本的数据库,他们定义的表结构完全可能是不一样的,比如V1.0的表A有10个column,而在V1.1的表A有12个colum,在升级时,表A增加了两列,此时我们应该怎么做呢。总体思路1,将表A重命名,改了A_temp。2,创建新表A。3,将表A_temp的数据插入到表A。下面代码列出了更新表的转载 2016-07-19 16:24:37 · 294 阅读 · 0 评论 -
Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
如果你用Android Studio开发,并且要用其他项目作为library,这个问题是很容易出现的。出现这个问题的原因是包的重复引用,意思就是在你自己的项目中引用了某个包,而被你作为library的项目也引用了同一个包,就会有这个问题。那如何解决呢,我所知道的是有两种方法:方法1:按照惯例,直接上图吧,从下图可以看到我在library中有加了一个v4的包,同时我将它作为depen转载 2016-07-29 13:13:35 · 481 阅读 · 0 评论 -
GitHub 排名前 100 的安卓项目简介
1. react-native这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, 该框架结合了 Web 应用和 Native 应用的优势, 可以使用 JavaScript 来开发 iOS 和 Android 原生应用2.Android-Universal-Image-Lo转载 2016-07-17 18:17:46 · 478 阅读 · 0 评论 -
APP使用的一些第三方库
背景前段时间在调研第三方推送服务的时候,反编译了一部分市面上比较流行的APP。其中一个无论是在设计还是功能上都堪称典型,这款APP总用户数超千万(其官网数据),在国内某手机助手上支持率超97%。可见其受欢迎程度(APP的名字就不说了)。反编译这个APP后发现其使用的第三方库也很有代表性。这里介绍下他们使用的这些第三方库,给需要的童鞋一些参考。1.Android Design Support转载 2016-07-27 16:25:55 · 957 阅读 · 0 评论 -
Android 自定义ViewGroup 实战篇 -> 实现FlowLayout
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38352503 ,本文出自【张鸿洋的博客】1、概述上一篇已经基本给大家介绍了如何自定义ViewGroup,如果你还不了解,请查看:Android 手把手教您自定ViewGroup ,本篇将使用上篇介绍的方法,给大家带来一个实例:实现FlowLayout,何为Flow转载 2016-07-17 14:57:42 · 294 阅读 · 0 评论 -
深入浅出 RecyclerView
写在前面本文转载请以链接形式注明地址:http://kymjs.com/code/2016/07/10/01起深入浅出这名字的时候我是慎重又慎重的,生怕被人骂标题党,写的什么破玩意还敢说深入浅出。所以还是请大家不要抱着太高的期望,因为没有期望就没有失望,就像陈润说的,超预期嘛。全当看小说的心情来看这系列文章了。这篇文章分三个部分,简单跟大家讲一下 RecyclerVie转载 2016-07-17 14:19:16 · 430 阅读 · 0 评论