android进阶
元涛
时刻保持小白的学习态度,认真对待每个技术点。
展开
-
设置drawableTop、drawableLeft、drawableRight、drawableBottom图片大小
在很多的项目中,我们都会用到RadioButton、TextView、Button这个三个控件,RadioButton我们常用的地方像QQ一样,在下面进行切换,但是有时候是要求文字和图片是同时出现的,这时候,我们就会在xml中使用到drawableTop、drawableLeft、drawableRight、drawableBottom三个属性值,来设定文字对应方向的图片,但是如果我们直接食用这三个原创 2015-07-18 17:02:28 · 10291 阅读 · 0 评论 -
【构建Android缓存模块】(一)吐槽与原理分析
摘要在我翻译的 Google 官方系列教程中,Bitmap 系列由浅入深地介绍了如何正确的解码 Bitmap ,异步线程操作以及使用 Fragments 重用等技术,并且在最后给出了非常强大的独家秘笈:BitmapFun ,让猿媛们得以一窥究竟 Google 的攻城师们是如何高屋建瓴地秒杀 OOM 的。前言在下载到 BitmapFun.rar 这个神圣的压缩包以后,我是转载 2016-02-21 22:16:35 · 193 阅读 · 0 评论 -
Android大图片裁剪终极解决方案(中:从相册截图)
在这篇博客中,我将向大家展示如何从相册截图。上一篇博客中,我就拍照截图这一需求进行了详细的分析,试图让大家了解 Android 本身的限制,以及我们应当采取的实现方案。根据我们的分析与总结,图片的来源有拍照和相册,而可采取的操作有使用Bitmap并返回数据使用Uri不返回数据前面我们了解到,使用Bitmap有可能会导致图片过大,而不能返回实际大小的图片,我将采用转载 2016-02-21 22:09:32 · 1012 阅读 · 0 评论 -
Android下Affinities和Task
本文参考了官方Dev Guide文档,简单介绍Android下的affinities和任务(task)。1、Activity和Tasktask就好像是能包含很多activity的栈。 默认情况下,一个activity启动另外一个activity时,两个activity是放在同一个task栈中的,第二个activity压入第一个activity所在的task栈。当用户按下返回键时转载 2016-02-28 20:14:46 · 594 阅读 · 0 评论 -
android跨进程通信(IPC):使用AIDL
AIDL的作用AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。AI转载 2016-02-28 20:18:02 · 758 阅读 · 0 评论 -
Android DiskLruCache 源码解析 硬盘缓存的绝佳方案
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47251585; 一、概述依旧是整理东西,所以近期的博客涉及的东西可能会比较老一点,会分析一些经典的框架,我觉得可能也是每个优秀的开发者必须掌握的东西;那么对于Disk Cache,DiskLruCache可以算佼佼者了,所以我们就来分析下其源码实转载 2016-02-28 20:41:51 · 787 阅读 · 0 评论 -
Looper、Handler在子线程中的应用
Looper类:为一个线程开启一个消息循环,里面有一个消息队列,新线程是没有开启消息循环的,所以需要用到Looper的方法创建消息循环(主线程除外,主线程会自动为其创建Looper对象,开启消息循环),MessageQueue存放消息和事件 Handler类:辅助类,向绑定的Looper投递消息 Looper原型:Looper.prepare()Lo原创 2016-04-28 16:45:01 · 2271 阅读 · 0 评论 -
Android Studio 如何打JAR包
在eclipse中我们知道如何将一个项目导出为jar包,供其它项目使用。 在AS中可以通过修改gradle才处理。 我们新建一个项目MakeJar,在项目中新建一个modle-类型为library 如图:app为我们的主工程,librarydemo是我们要将其生成jar包的model. 在librarydemo中加入如下代码:task makeJar(type:转载 2016-04-18 17:07:47 · 634 阅读 · 0 评论 -
Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库
目的发布自己的android library(也就是aar)到公共的jcenter仓库,所有的人都能用gradle最简单的方式引用。为什么选择jcenter,它兼容maven,而且支持更多形式仓库,android studio最新版本已经默认jcenter了。环境Android Studio 1.0+参考文章使用Gradle发布Android开源项目到J转载 2016-04-18 17:30:35 · 744 阅读 · 0 评论 -
Android应用学习记录------通讯录的增,删,改,查
转:http://lichangsong.blog.51cto.com/7997447/1306033最近两天在做通讯录的增删改查功能。原以为Android会将通讯录的所有数据都集合到一个数据库表中,然后知道其ContentProvider提供Uri后,通过ContentResolver的query(),insert(),update(),delete()方法直接操作数据库的数据,转载 2016-07-25 14:28:14 · 1453 阅读 · 0 评论 -
Android中JS与Java的极简交互库-SimpleJavaJsBridge
前言最近接触android中js与java交互的东西很多,当然它们之间的交互方式有几种,但是我觉得这几种交互方式都存在一定的不足,这是我决定编写SimpleJavaJsBridge这个库的关键原因。我会按以下顺序进行本文章:现有js与java通信方案及不足js与java完美通信方案设计SimpleJavaJsBridge现在进入正题1. 现有js与java通信方案及不足先来说明一点js与ja转载 2016-10-10 15:29:21 · 2761 阅读 · 0 评论 -
Android大图片裁剪终极解决方案(下:拍照截图)
上一篇博客中,我们学习到了如何使用Android相册截图。在这篇博客中,我将向大家展示如何拍照截图。拍照截图有点儿特殊,要知道,现在的Android智能手机的摄像头都是几百万的像素,拍出来的图片都是非常大的。因此,我们不能像对待相册截图一样使用Bitmap小图,无论大图小图都统一使用Uri进行操作。一、首先准备好需要使用到的Uri:12pri转载 2016-02-21 22:07:57 · 155 阅读 · 0 评论 -
Android大图片裁剪终极解决方案(上:原理分析)
转http://ryanhoo.github.io/blog/2014/05/26/the-ultimate-approach-to-crop-photos-on-android-1/约几个月前,我正为公司的APP在Android手机上实现拍照截图而烦恼不已。上网搜索,确实有不少的例子,大多都是抄来抄去,而且水平多半处于demo的样子,可以用来讲解知识点,但是一碰到实际项目,就漏洞转载 2016-02-21 22:03:09 · 537 阅读 · 0 评论 -
Git使用小结
git提交工程到github1、github创建repository2、配置git.exe 路径和github的账号和密码3、打开git bash 找到自己工程目录4、输入命令进行关联 git remote add origin http://.......git 地址链接5、右键工程目录Git -->Add Git原创 2016-02-15 11:09:08 · 497 阅读 · 0 评论 -
android夜间模式实现方式
记得之前看小说,下了一个夜间模式用用,居然一大堆的广告,用的太不爽了,于是自己写一个用。其实原理很简单,就是添加一个带有黑色透明的悬浮窗而已。 说下实现步骤: 1、添加悬浮窗,需要用到WindowManager对象 2、如果要保证我们退出程序,也要保证夜间模式还是启动的状态,那么就需要用到Service 3、为了保证Service不被系统杀死,所以准备使用前台服务看下服务类的代码public原创 2015-08-02 22:16:32 · 3793 阅读 · 1 评论 -
AndroidStudio提交代码到Github(详细图文)
直奔主题 第一步:下载git 第二步:在AndroidStudio中指定git的路径 File–>Settings 测试git是否可用 第三步:在AndroidStudio上创建 git repository 找到工程的目录 第四步:在github上创建一个repository 第五步:通过git找到工程目录,并且关联目录 第六步:在AndroidStudio中将原创 2015-10-19 16:05:43 · 3739 阅读 · 1 评论 -
ListView的CheckBox状态的保存及项目中会出现的奇怪情况
最近小组成员,在使用listview中出现了奇怪的现象,先描述一下这个奇怪的现象:首先他给checkbox设定了OnCheckedChangeListener监听器,当点击的时候,就修改该条item,对应的bean中保存的checkbox状态值,并且将该item添加到选中的集合中,反之就去除集合中的该元素,当convertView复用的时候,他又重新设定当前的状态。可是其奇怪的现象出现了,当复用co原创 2015-10-08 15:02:27 · 4471 阅读 · 1 评论 -
用MVP架构开发Android应用
转载地址:http://kymjs.com/code/2015/11/09/01 怎样从架构级别去搭建一个APP,怎样让他应对日益更改的界面与业务逻辑? 今天为大家讲述一种在Android上实现MVP模式的方法。也是我从新项目中总结出来的一种新的架构模式,大家可以查看我的TheMVP项目:https://github.com/kymjs/TheMVP为什么需要MVP转载 2015-12-14 10:43:16 · 1180 阅读 · 0 评论 -
Android源码中final关键字的用法
这跟性能没关系,我来告诉大家吧!第一步:将全局变量赋给一个局部变量: 只是为了取得 在程序运行过程中,该全局变量的当前时刻的值!但这样是不够的!因为设置 变量local=global,在JAVA里只是将局部的一个引用指向这个全局变量,当全局变量发生改变时,引用它的这个局部变量值会随之改变,倘若局部变量在这个局部代码块里正在运行,又中途被改变了,这会发生多么严重的错误!原创 2016-01-03 22:37:24 · 6039 阅读 · 0 评论 -
Android应用架构
转:http://www.jianshu.com/p/8ca27934c6e6Android开发生态圈的节奏非常之快。每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨。如果你外出度假一个月,当你回来的时候可能已经发布了新版本的Support Library或者Play Services我与Ribot Team一起做Android应用已经超过三年了。这段时间,我们所构建的A翻译 2016-02-06 22:48:23 · 514 阅读 · 0 评论 -
Android深入理解WebView——上
版权声明:本文原创,转载请注明来自开源实验室 http://www.kymjs.com/目录(?)[+]摘要作为Android开发者,我们都知道在手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件。今天就为大家讲讲Android中WebView的详细使用方法 本文原创,转载请注明地址:h转载 2016-02-14 19:18:50 · 743 阅读 · 0 评论 -
Android深入讲解WebView——下
版权声明:本文原创,转载请注明来自开源实验室 http://www.kymjs.com/摘要作为Android开发者,我们都知道在手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件。今天就为大家讲讲Android中WebView的详细使用方法 判断 WebView 是否已经滚动到页面底端转载 2016-02-14 19:25:58 · 871 阅读 · 0 评论 -
EventBus源码研读(上)
基础用法在读代码之前,首先你得了解它的基本用法.如果你已经能够很熟练的使用EventBus等事件总线库了,那么你可以跳过本节.首先引入依赖包,查看GitHub主页的说明:https://github.com/greenrobot/EventBus在Gradle文件加入 compile 'de.greenrobot:eventbus:2.4.0'用法与广播相同,且比广播更转载 2016-02-14 19:30:45 · 612 阅读 · 0 评论 -
EventBus源码研读(中)
Subscribe流程我们继续来看EventBus类,分析完了包含的属性,接下来我们看入口方法register()通过查看源码我们发现,所有的register()方法,最后都会直接或者间接的调用register()方法/** * @param subscriber 订阅者对象 * @param sticky 是否粘滞 * @param priority 优转载 2016-02-14 19:32:17 · 407 阅读 · 0 评论 -
EventBus源码研读(下)
post()方法调用流程我们继续来看EventBus类,的另一个入口方法post()//已省略部分代码public void post(Object event) { PostingThreadState postingState = currentPostingThreadState.get(); ListObject> eventQueue = posting转载 2016-02-14 19:33:28 · 505 阅读 · 0 评论 -
OnePush一个可拓展的Android消息推送SDK(使用介绍)
一、为啥会有OnePush消息推送,在国内,要么自己做,要么集成第三方的sdk,现在第三方推送的sdk,有很多可以选择,友盟,极光,小米等,我们在选择消息推送的时候,肯定是需要一个能及时把消息推送给用户的sdk,那么问题来了,很多国产手机厂商都各自根据android修改的UI系统,各种的进程清理,导致消息推送的后台无法存活,特别是小米、华为的手机上,只要用户清理,基本上推送后台服务就死绝了,当然这原创 2017-05-27 13:48:54 · 2040 阅读 · 0 评论