Android
文章平均质量分 81
山中小僧
这个作者很懒,什么都没留下…
展开
-
Dalvik虚拟机简要介绍和学习计划
我们知道,Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。除了指令集和类文件格式不同,Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等。本文对Dalvik虚拟机进行简要介绍,以及制定学习计划。转载 2015-07-10 14:37:13 · 461 阅读 · 0 评论 -
Android Studio中使用junit做单元测试
Android Studio中使用junit做单元测试单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。比如一个函数,一个方法等。关于单元测试要不要做,由谁来做这些问题暂时抛到一边。本文只是单纯的介绍如何用Android Studio做单元测试。1. 确保你的工程添加了junit依赖,目前一般都会自动添加该项。dependencies {原创 2016-10-24 15:29:14 · 7246 阅读 · 0 评论 -
AsyncTask为什么可以在回调中修改UI(源码分析)
今天偶然想到了使用AsyncTask异步任务栈,可以在onPostExecute()中修改UI,这不是一个很奇怪的现象吗?于是便萌发想法看看源码这到底是怎么回事。一、AsyncTask的使用介绍还记得AsyncTask的使用方法不?主要是重写几个方法protected void onPreExecute() //开始前protected void onProgressU原创 2016-10-24 21:24:44 · 426 阅读 · 0 评论 -
Android将任务抛到UI线程的几种方法
有的时候,我们希望能将任务抛回到UI线程去做,比如修改界面。如果当前没有处在UI线程,那应该怎么把任务抛到UI线程去呢?以下是Android系统提供的3个将任务抛回UI线程的方法Activity.runOnUiThread(Runnable)View.post(Runnable)View.postDelayed(Runnable, long)例如,在某一个线程中,通过V原创 2016-10-25 15:00:45 · 881 阅读 · 0 评论 -
Android性能优化大纲(自我总结)
Android性能优化是开发者必须掌握的知识,因为已经有很多文章写Android性能优化的方方面面,因此,本文只做纲领性的阐述,指出Android哪些方面可以优化,限于笔者经验有限,如有不足请留言指出。一. Android性能优化的目标说一千,道一万,Android性能优化无非跟下面4个方面有关,而前4个因素或多或少和电量优化联系起来。提升响应速度提升UI运行(渲染)速原创 2016-10-24 22:01:43 · 479 阅读 · 0 评论 -
Activity生命周期的自测(对网上一些说法进行纠正)
发现网上一些对于生命周期的说法有问题,于是自己写代码测试一下,并结合官网的说明,对一些说法进行纠正。标红的字体就是对网上一些说法的纠正。1. 基本的声明周期以下来自官网的说明: https://developer.android.com/guide/components/activities.htmlpublic class ExampleActivity ex原创 2016-10-25 18:17:36 · 353 阅读 · 0 评论 -
Android Context导致的内存泄漏分析(示例代码+分析工具使用)
Android开发中因为有限的内存,以及防止OOM问题出现,解决内存泄漏问题将是开发者一直持续下去的工作。本文就分析了不当使用(持有)context导致的内存泄漏。1. 为什么使用Context有可能会导致内存泄漏?首先从context的本质谈起,context名称上代表了上下文,实质上是Application、Activity或Service的一个引用。因此如果有生命周期较长原创 2016-10-26 12:08:01 · 1964 阅读 · 0 评论 -
Android中高手必须了解的关于View的细节(进阶必备)
关于Android的视图体系,有一些位置、坐标系、定位的小细节可能开发者并没有注意到,本文将指出一些让人惊讶的小细节,并以实例证明。一、Android的视图组织体系不为人知的小细节众所周知Android中的view分为view和viewGroup,viewGroup又继承了view,两者组织起来成为一颗“视图树”。Actiity并不直接承载view,承载view的是An原创 2016-11-08 13:05:58 · 1547 阅读 · 0 评论 -
Android手把手教你实现滑动隐藏(GeastureDetector使用)
因为移动设备有限的显示屏幕,很多时候都需要在合适的时间去隐藏一些控件,比如滑动隐藏就是一个好的设计方案。本文将实现一个通用性较强的滑动隐藏方案,顺便采用了GeastureDetector这个好用的用户动作检查工具。一、本文拟实现的效果图最近下载了Now直播APP,发现它实现了一个比较流畅的滑动隐藏效果,具体看下面的GIF图。因为在老版本的模拟器上运行,显得有原创 2016-11-09 20:42:48 · 3309 阅读 · 1 评论 -
Android事件传递机制详解(嵌套自定义View示例)
一、概述 自定义View如果嵌套了自定义View,可能简单写一个onTouchEvent处理事件已经不能解决你的需要。简单举个例子: 你自定义了一个容器View,简称为父View,在这里监听点击事件,做事情A,监听滑动做事情B 然后你又自定了一个View,放入该容器父View当中,也监听点击事件,当点击的时候做事件C,滑动时做事情D。上面的事件A、C不是互斥的,意原创 2016-10-20 17:40:10 · 2020 阅读 · 0 评论 -
Android Studio常用快捷键总结(非常有用)
Android Studio快捷键(Windows版本)工欲善其事,必先利其器。Google推出Android Studio已经有些年头,但是很多人仍然在用Eclipse的快捷键。虽然用什么版本的快捷键并不重要,但是Eclipse版本提供的快捷键数量是小于Android Studio的。本文将总结本人在开发中常用的快捷键,一些众所周知的快捷键如格式化代码、双shift查询,就没原创 2016-10-21 09:27:15 · 1029 阅读 · 0 评论 -
Android自定义View讲解加示例
Android自定义View是工程开发中必不可少的一项技能,项目中通过自定义View的方式造好各种内部需要的View,将会带来极大的使用方便。一、 自定义View的几种使用方式(1)自绘控件:使用canvas画出控件的样子(2)组合一些Android的控件:通过继承容器,将一些现有的组件组合起来成为一个固定的View(3)继承并扩展Android的控件:对原有的Andr原创 2016-10-19 14:34:30 · 538 阅读 · 0 评论 -
Android Data Binding简介+示例
MVC、MVP又到MVVM,随着技术的进步,开发设计模式也在演进,Google在2015 IO 大会上带来的 Data Binding 库使得 Android 开发者可以方便的实现 MVVM 架构模式。使用DataBinding可以改善应用程序的开发,使代码更加干净优雅。本文将简单介绍DataBinding框架,通过实例展示其用法,算是当一个官网的翻译搬运工吧。一. DataBindi原创 2016-10-31 21:36:00 · 415 阅读 · 0 评论 -
Android圆形图片不求人,自定义View实现(BitmapShader使用)
在很多APP当中,圆形的图片是必不可少的元素,美观大方。本文将带领读者去实现一个圆形图片自定View,力求只用一个Java类来完成这件事情。一、先上效果图二、实现思路在定义View 的onMeasure()方法里设置View的宽高相等,应该取宽高中的最小值。在自定义View的onDraw()里面使用画笔paint结合BitmapShaper画出一个圆形区域。上述原创 2016-11-17 13:12:27 · 11401 阅读 · 3 评论 -
Android和Unity混合开发——Activity和Unity脚本交互和信息传递
Unity3D集成:Android Activity和Unity脚本交互和信息传递 移动端项目中很有可能需要利用Unity来渲染3D模型。但是其他模块开发者仍旧采用native开发方式。那么就产生了一个需求,Android和Unity3D的混合开发方案。一、从本文拟可以学到什么如何先启动Android的本地MainActivity,根据需要启动Unity3D编写的场景。Android Ac原创 2016-12-02 16:56:15 · 10044 阅读 · 3 评论 -
Android开源网络框架Retrofit(入门篇)
Restful风格接口基本成了业界主流,Retrofit框架也大火特火,最近项目中也决定更新换代,采用Retrofit。本着学习之余,也对接下来的学习者有一些帮助,于是写了本文,主要的内容是对官网内容的一个翻译和补充解释。 plus:本文假设你对于基本的HTTP协议有所了解。一、Retrofit简介Retrofit内部使用OKhttp来进行网络请求, 会把网络请求转化为一个java接口,使用原创 2016-12-12 19:08:03 · 683 阅读 · 0 评论 -
正确应对系统内存不足,使用OnLowMemory和OnTrimMemory回调
理论上,一个具备良好行为的应用应该考虑Android系统内存紧张的问题,这样有助于维持一个良好的生态。在前人的基础上,本文对OnLowMemory和OnTrimMemory回调进行了总结。1. OnLowMemoryOnLowMemory是Android提供的API,在系统内存不足,所有后台程序(优先级为background的进程,不是指后台运行的进程)都被杀死时,系统会调用OnLowMemory原创 2017-04-07 11:40:51 · 4277 阅读 · 0 评论 -
Android手把手教你实现卡片式瀑布流效果(RecyclerView+CardView,附源码)
Android手把手教你实现卡片式瀑布流效果卡片式的瀑布流效果是一种非常美观的UI设计,自从Android 5.0的 RecyclerView出现以后,实现瀑布流变得十分简单,本文将一步步带领读者去实现一个卡片式的瀑布流布局。一、先上效果图二、代码实现卡片式瀑布流1. 涉及到要使用的类和控件类或控件介绍作用原创 2016-10-22 17:20:36 · 5878 阅读 · 1 评论 -
Android ImageView的scaleType属性解释
ImageView的scaleType的属性是用于指示图片应该如何缩放显示在图片控件上。 Android的scaleType有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXYandroid:scaleType="center"保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分原创 2016-08-02 15:58:27 · 293 阅读 · 0 评论 -
Fresco图片框架简介及使用(可做圆角图片)
Fresco图片框架简介及使用Fresco是FaceBook推出的一个Android开源图片管理框架,它提供了图片下载、渐进式加载、内存管理等功能,很大程度上把程序员从繁琐的图片管理工作中解放了出来,官网地址,Fresco API。一. 特性介绍1. Image PipelineFresco 中设计有一个叫做 Image Pipeline 的模块。它负责从网原创 2016-10-22 14:12:26 · 1293 阅读 · 0 评论 -
信息安全专业知识点大提纲
原创作品:转载请注明出处http://blog.csdn.net/a369414641 作者:王勤为一、信息安全的保障标准(主体是信息,从各种方面保证信息的安全) (1)保密性 网络安全解决措施网络安全解决措施信息不泄露给非授权用户、实体或过程,或供其利用的特性。 (2)完整性 数据未经授权不能进行原创 2015-07-15 14:04:04 · 1480 阅读 · 0 评论 -
Android activity栈、启动模式和intent flag属性详解
一、activity栈的概念 1.每个app应用程序启动的activity都会保存在一个单独的栈里面。 2.有可能某个activity发生栈转移。二、acitivity的启动模式1.standard默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。原创 2015-07-10 16:53:18 · 628 阅读 · 0 评论 -
Android 5.0内核和源代码学习(2)——源码下载和系统启动过程分析
一、Android源码下载上一次简单介绍了Android系统的层次结构,这次开始动真格了——下载源码和分析源码!那么,Android的源码从哪下?当然是谷歌官网,下载方法官网也讲得很详细,但是奈何中国的墙比较厚,所以上面的办法是没用的,当然,有些是有用的,地址:http://source.android.com/source/downloading.html谷歌官网没办原创 2015-07-31 08:31:00 · 2249 阅读 · 10 评论 -
Android 5.0内核和源代码学习(3)——SystemServer启动了什么服务?
一、综述 上一篇讲述Android启动过程的时候,在第四部的关键进程SystemServer讲的很粗略,只是简单介绍它启动了很多服务,那么它究竟启动了哪些服务,执行过程是怎么样的呢?这一次,我就通过源代码注释的方式介绍一下SystemServer.二、SystemServer源代码分析原创 2015-08-03 15:44:11 · 1104 阅读 · 0 评论 -
Android中用到了哪些设计模式?
所谓活学活用,学习了设计模式,作为一个Android开发者,你知道Android中哪些地方使用到了设计模式吗?1. 简单工厂模式——BitmapFactory将具体的实例化工作交给一个静态的工厂类来负责,BitmapFactory正是完美符合此思想。2. 原型模式——各个对象的clone方法,还有一些集合的copy方法。原型模式通过已有的类复制出一个新的对象,减原创 2016-10-21 17:09:52 · 968 阅读 · 0 评论 -
Android 5.0内核和源代码学习(1)——系统简介
做Android应用以来,但是总感觉蒙了一层雾,为什么是activity的生命周期是这样?为什么要分UI线程和其他线程?Android和Linux有什么区别?我想要知其所以然,而不是天天学习搬砖,语言技术总是在变,程序员总要抓住其中不变的内涵。原创 2015-07-30 11:19:36 · 2615 阅读 · 0 评论 -
Android 解决图文混排,图片和文字居中对齐问题(ImageSpan)
一. 概述众所周知,Android图文混排可以通过SpannableString来实现,通过在相应位置使用ImageSpan替换即可,但是使用过的人会发现,imageSpan只提供了两种对齐方式,如下所示: /** 底部对齐 */ public static final int ALIGN_BOTTOM = 0; /** 基线对齐 */原创 2017-04-10 17:20:55 · 9180 阅读 · 4 评论