《Android群英传》作者
转自 http://blog.jobbole.com/38696/ 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。
尊重个人劳动成果,转载请注明出处:http://blog.csdn.net/hnulwt/article/details/44903331 文中很多内容说到了JVM,我想通过研究学习JVM来达到认识DVM的目的。
转自http://blog.csdn.net/wirelessqa/article/details/22725581 Android视频录制命令screenrecord 你要知道: screenrecord是一个shell命令 支持Android4.
Android异步加载全解析之IntentService 搞什么IntentService 前面我们说了那么多,异步处理都使用钦定的AsyncTask,再不济也使用的Thread,那么这个IntentService是个什么鬼。
Android异步加载全解析之引入二级缓存 为啥要二级缓存 前面我们有了一级缓存,为啥还要二级缓存呢?说白了,这就和电脑是一样的,我们电脑有内存和硬盘,内存读取速度快,所以CPU直接读取内存中的数据,但是,内存资源有限,所以我们可以把数据保存到硬盘上,这就是二级缓存,硬盘虽然读取速度慢,但是人家容量大。
Android异步加载全解析之引入缓存 为啥要缓存 通过对图像的缩放,我们做到了对大图的异步加载优化,但是现在的App不仅是高清大图,更是高清多图,动不动就是图文混排,以图代文,如果这些图片都加载到内存中,必定会OOM。
Android异步加载全解析之大图处理 异步加载中非常重要的一部分就是对图像的处理,这也是我们前面用异步加载图像做演示例子的原因。一方面是因为图像处理不好的话会非常占内存,而且容易OOM,另一方面,图像也比文字要大,加载比较慢。
Android异步加载全解析之使用AsyncTask 概述 既然前面提到了多线程,就不得不提到线程池,通过线程池,不仅可以对并发线程进行管理,更可以提高他们执行的效率,优化整个App。当然我们可以自己创建一个线程池,不过这样是很烦的,要创建一个高效的线程池还是挺费事的,不过,Android系统给我吗提供了AsyncTask这样一个类,来帮助我们快速实现多线程开发,它的底层实现,其实就是一个线程池。
Android异步加载 概述 Android异步加载在Android中使用的非常广泛,除了是因为避免在主线程中做网络操作,更是为了避免在显示时由于时间太长而造成ANR,增加显示的流畅性,特别是像ListView、GridView这样的控件,如果getView的时间太长,就会造成非常严重的卡顿,非常影响性能。
概述 从Android 3.0开始(API L11),Android开始全面使用硬件加速来进行2D渲染,硬件加速是指Android中在View上进行绘制的图形图像都使用GPU来进行绘制,使用硬件加速,在大部分时候都让绘制更加流畅,但付出的代价是需要消耗更多的内存资源。
StrictMode StrictMode最常用来捕捉应用程序的主线程,它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。
原因大家应该都知道,离线下载的SDK Api本地也无法打开,其实主要就是因为这些Doc中有去访问google的一些网站:font、js api等等,因此,要真正离线使用Doc,有两个方法可以实现: 1、真正的离线——即把网断掉,这样确实可以,但是,使用起来太不方便了 2、把API Doc中...
最近实在太忙了,好久没有更新博客了,发个开源网站资源汇总,冒个泡泡泡泡泡泡泡泡泡泡泡泡泡泡。。。。 收集Github上优秀的开源项目 Android开源 Android开源 开源动画效果 Android开源 国外Android开源 神码 23Code 国外开源 多看看开源到项目,学习人家的创...
我们的手机中的Seting里面可以添加很多类型的帐户,有时候,我们需要在程序中启动这些帐户的登录界面,但是,就算你知道了登录界面的包名、类名,通过Intent也没办法启动,这是因为Android的权限控制。
有时候我们需要在PC上显示真机的屏幕,Android的ADM只能静态的监听一桢图像,所以在Google Code上,Google提供了一个Android Screen Monitor工具来实时显示手机屏幕: http://code.
如果你的App需要验证密码,我们可以使用系统的ScreenLock来进行验证,这样做的好处是我们的用户不必使用多个不同的密码来验证身份,OK,下面我们来看看如何使用系统锁屏: 先来介绍几个Framework里面的锁屏相关的类: LockPatternUtils:这里提供了锁屏的一些帮助类,我们...
刚刚看了下SDK更新,5.0的samples已经开放下载了,大家可以好好研究下Google官方的Samples了。 双喜临门,刚刚又看了下Genymotion,发现支持5.0的Genymotion模拟器也已经开放下载了!
Gradle Project项目、Module模块导入 最近看到网上很多人在抱怨,Android Studio很难导入github上下载下来的一些项目,主要包括: 1、导入就在下载Gradle2、根本导不进 下面我分2部分来讲解正确的导入姿势: 1、导入完整的Github Project 我...
UI设计资源推荐又来了,纯干货,不注水~ 各种背景资源图库 http://subtlepatterns.com/ ICON资源 https://www.iconfinder.com/ HOLO Color生成器 http://android-holo-colors.
图解GIT AUG 5TH, 2013 GIT是非常优秀的版本控制工具,但是苦于git那晦涩难懂的man pages,还有众多的命令选项和怪异的用法,git有点难学。这篇文章分享我学习过程中收藏的一些好图,并围绕这些图讲讲我对git的理解,希望对大家有所帮助。
Gradle, the new build system for Android projects, has been designed for scalability and efficiency.
虚拟现实技术 未来视角? Google Cardboard试玩与比较 阅读以下文字请请先戳 戳我戳我 2014年的Google I/O大会,一向以Geek自称的Google拿出了一个叫做Cardboard的纸盒,让很多人没法相信的是,Google竟然只通过这个纸盒,就让观众体验了一把虚拟现实~~虽然他的效果比起专业的VR设备还有一定差距,但这个小纸盒的意义,却完全的代表了Google的极客文化和创造精神。
最早在git上发现一个很酷眩的动画图标效果: https://github.com/xuyisheng/tickplusdrawable 不得不说,国外的程序员在细节的考虑上,确实比我们要好很多,ok,今天我们就来模仿下这个: 现来看看我们的效果,别喷我,就写了个把小时,很多细节还没考虑全,代码也还没重构,希望大家能提出修改意见,thx~ gif效果不一定好,大家可以参考github的gif。
导入 1、VectorDrawable是Android L中新增的一个API,让你可以创建基于XML的矢量图,并结合AnimatedVectorDrawable来实现动画效果。 2、Android L新增支持Vector标签,可以使用Path创建动画,同时支持SVG格式。
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 使用Material主题 这种新材料的主题为: 可以让你设置自己的自定义color palette 要自定义主题的基础颜色,以适应你的品牌,使用的时候,你从材料主题主题继承属性定义自定义颜色: 系统部件 触摸反馈的动画为系统部件 Activity过渡动画 您可以根据一个color palette,你控制你的品牌形象定制的材料主题的外观。
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 创建Lisst和Cards 在你的应用程序创建复杂的清单,并与材料设计风格卡,您可以使用RecyclerView和CardView部件。
View转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 定义阴影和裁减 材料设计引入了深度的UI元素。
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 Drawable 通过可绘制了以下功能帮助您实现材料设计你的应用程序: 可绘制着色 突出的颜色提取 矢量可绘 这一课将告诉您如何使用您的应用程序这些功能。
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 定义动画 在材料设计动画让用户与您的应用程序进行交互时,为他们的行为提供反馈,并提供可视化的连续性。
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 保持兼容性 如material design和自定义活动的过渡部分材料设计功能只能在Android5.0(API等级21)以上。
摘抄自Api Doc RequestLayout: 当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。
1、List->Array 调用List的toArray方法 List list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); String[] strings = list.toArray(new String[list.size()]); 2、Array->List 调用Array的asList方法 String[] strings = {"1","2","3","4"}; List list = Arrays.asList(strings); 以上。
android默认的ScrollView、ListView在最顶端下拉或者最底端上拉的时候,都不会带有反弹效果,很生硬的让你不能继续拖动,不像iOS那样可以回弹,个人认为,iOS的交互还是略好一点,那么我们也来在Android下实现下这个功能,先看下效果图: 那么我们今天的目标是一句话实现,如何去做呢 我们还是先看下代码: package com.
不知从某某时间开始,这种效果开始在UI设计中流行起来了,让我们先来看看效果: 大家在支付宝、美团等很多App中都有使用,要实现这个效果,我们可以来分析下思路: 我们肯定要用2个一样的布局来显示我们的粘至布局,一个是正常的、另一个是到顶部不动的,正常的那个,随着scroll一起滚,该滚到哪滚到哪,只是他滚到最上面的时候, 我们需要用粘至的布局,放到顶部,当然,他还在后面继续滚,ok,现在我们来看看具体如何实现: 先看布局,just a demo,用几张图片稍微做做样子。
今天早些时候,谷歌正式发布了Android 5.0,一同亮相的还有Nexus 6等新品。 跟之前传闻的一样,Android 5.0之所以叫L,其代号是 Lollipop棒棒糖,除了32位版本外,还有64位。
public static interface ViewTreeObserver.OnPreDrawListener 我们先看下API中的定义: 类概述: 为即将绘制视图树时执行的回调函数定义的接口. 共有方法: public abstract boolean onPreDraw ()即将绘制视图树时执行的回调函数。
本文是从国外一个网上看到的效果,感觉很不错,就简化了一下代码,拿来用了,先看下效果图: 效果还是很不错的,下面让我们看看是如何实现的: 看看文字来源,很简单,是一个数组: If I could save time in a bottle th...
导入 判断触摸点是否在一个多边形的内部 方法 1、数学方法 这个方法的好处是任意平台都可以使用,不仅现于Android 算法: 求解通过该点的水平线与多边形各边的交点,单边交点为奇数,则成立 ok我们其实就是需要看这个点的单边射线与多边形的交点,代码实现如下: public boolean i...
写了一个还不错的自定义控件,用来展示完成度或能力值,程序中配置好所占百分比,图中就可以用外面的圆环来显示百分比,效果还是不错的~ 代码实现如下: package com.xys.fastword.
问题 如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接在onCreate里面调用getWidth、getMeasuredWidth不就可以获得了吗,但是,事实上是并没有简单的,不信的话,你可以去试一下,在onCreate里面,你是无法获得长宽值的,始终为0。
Blur 自从iOS系统引入了Blur效果,也就是所谓的毛玻璃、模糊化效果,磨砂效果,各大系统就开始竞相模仿,这是一个怎样的效果呢,我们现来看一些图: 这些就是典型的Blur效果,在iOS和MIUI中还有很多,这里就不再贴图了。
View中的scrollTo方法配合Scroller类,可以实现视图的位移动画效果。相对于补间动画,这种实现方式更加灵活,而且不仅改变了视图的绘制位置,也改变了视图的点击区域,可以认为是一种“真实”的位置改变。
Linux下我们经常需要解决端口占用的问题,解决方法如下: linux:1 某个端口号被占用,查看pid##根据端口查看进程信息 lsof -i:14700 ##根据进程号查看进程对应的可执行程序 ps -f -p 进程号 还可用netstatnetstat 的常用参数: - t、- u、- w和- x分别表示TCP、UDP、RAW和UNIX套接字连接。
ZXing是目前用的比较广泛的一个二维码扫描库,扫描快、识别率高,网上有很多关于zxing的简化和使用,这里做一个小结: 1、重写com.mining.app.zxing.view包下面的ViewfinderView类来实现自己的扫描框样式。
最近有一个需求,需要我们在不使用apk的情况下获取系统的数据库数据,ok我们来看下如何实现,当然,在ADB下操作系统数据库,你必须要有root权限。 1、ADB连接手机 2、adb shell 结合find来查找db文件 adb shell find / -name '*.
Sqlite作为Android中的主流数据库而广为使用,但是他的sql语言与一般的大型数据库所使用的SQL语言还是有一些区别的,本文总结如下: 1、TOP 在SQL Server中,我们使用TOP来获取前N条数据: SELECT TOP 10 * FROM [index] ORDER BY indexid DESC; 但是在Sqlite中,大家会发现这是不行的,我们需要这么写: SELECT * FROM [index] ORDER BY indexid DESC limit 0,10; 通过limit来实现TOP的功能。
(当然你要有他的代码!)相信用过android-support-v4.jar的朋友一定知道,添加了lib库之后,我们也无法看到他的源代码和文档,本文来解决这个问题: 以android-support-v4为例来讲解: 1、我们只需要在同一个目录下建一个properties文件,名字跟你所用的support jar包相同,即android-support-v4.jar会有一个对应的android-support-v4.jar.properties的文件。
很简单,通过调用系统的intent,我们可以打开各种文件,不熟悉的朋友可以了解下action、datatype、uri的相关知识。 通用方法如下: public static Intent openFile(String filePath){ File file = new File(filePath); if(!file.
在Android中通过Socket来来连接服务器,是一种比较简单的网络连接方式,虽然现在使用的不多,但某些场合还是很方便的,这里总结一下基本的写法。 客户端: try { Socket socket = new Socket(host, port); socket.
写了一个工具类来辅助处理wifi相关状态控制和连接等功能,参考了网上的相关文件,并修改了里面的一些bug和问题,本文给出的方法均经过验证可用~ package com.xys.jrdtraining.