- 博客(27)
- 收藏
- 关注
原创 Android创建窗口(一)创建应用窗口
所谓的窗口(Window)就是一个显示在手机屏幕上可视化视图的一片区域。在Android中窗口是一个抽象的概念,每一个Activity就对应着一个窗口,而所有的窗口都是由视图(View)来呈现,而我们知道View构成的一个树形结构的视图就组成了一个Activity的界面了。在android系统中窗口分为三个类型:应用窗口:所谓应用窗口指的就是该窗口对应一个Activity,因此,要创建应用窗口就必
2017-07-17 19:42:54
1373
原创 Window和WindowManager(一)
Window是一个抽象类,表示一个窗口,他的具体实现类是PhoneWindow。创建一个Window是很简单的事,只需要通过WindowManager即可完成。WindowManager是外界访问Window的入口,Window的具体实现位于WindowManagerService中,WindowManager与WindowManagerService的交互是一个IPC过程。Android中所有的试
2017-07-15 21:39:58
436
原创 AOP实现防止连续点击
防止连续点击的实现方式有很多种,比如,在所有的onclick里面加上防多次点击的代码,或者定义一个新的OnClickListener,在里面加上防多次点击的代码,然后项目中的所有OnClickListener都用这个listener,当然还有一些其他的方式,这里将介绍一种新的方式来实现,那就是aop。不知道aop的可以看这篇文章深入理解Android之AOP在android实现aop通常是用Aspe
2017-04-03 21:44:02
1765
原创 AspectJ基本用法
AOP虽然是方法论,但就好像OOP中的Java一样,一些先行者也开发了一套语言来支持AOP。目前用得比较火的就是AspectJ了,它是一种几乎和Java完全一样的语言,而且完全兼容Java(AspectJ应该就是一种扩展Java,但它不是像Groovy[1]那样的拓展。)。当然,除了使用AspectJ特殊的语言外,AspectJ还支持原生的Java,只要加上对应的
2017-04-03 00:03:56
10401
原创 Android中使用AspectJ
aop学习 深入理解Android之AOP什么是AOPAOP是Aspect Oriented Programming的缩写,即『面向切面编程』。它和我们平时接触到的OOP都是编程的不同思想,OOP,即『面向对象编程』,它提倡的是将功能模块化,对象化,而AOP的思想,则不太一样,它提倡的是针对同一类问题的统一处理,当然,我们在实际编程过程中,不可能单纯的安装AOP或者OOP的思想来编程,很多时候,可能
2017-04-02 21:01:55
2661
原创 JVM垃圾收集器
垃圾标记策略引用计数算法:给对象添加一个引用计数器,当有地方引用时,计数器就加一;当引用消失时,计数器减一。当引用为0时,对象就会被回收。引用计数算法实现简单,判定效率很高,在大多数情况下是一个不错的算法,但这种算法有一种缺陷,如下面的代码,当两个对象相互引用时,并且这两个引用不可能被访问时,他们的引用数都不为0。但是,运行程序会发现,它们被回收了,这是因为jvm还使用了另一种算法–可达性分析算法
2017-03-12 20:25:04
218
原创 viewpager + fragment 的坑
当viewpager所依赖的activity被回收后,再次重建的时候,获取的viewpager中的fragment为空,下面是代码: 创建fragment的代码public class MainActivity{ ... @Override protected void onCreate(Bundle savedInstanceState) { super.
2016-12-08 23:04:57
1633
1
原创 linux 常用命令
总结了一下android开发中常用的Linux命令 - manman的含义manual,手册,不清楚某个命令的作用和用法时,可以使用 man command 查询。比如: man lsfindfind 用于查找文件、文件夹,比如:$ find . -name “*.java”查找当前目录下扩展名为.java 的文件 ,.代表当前目录,*为通配符grepgrep命令为正则表达式匹配命令,用于
2016-10-22 16:09:15
322
原创 RecyclerView的分割线:ItemDecoration
使用ListView时,设置分割线很容易,但是用RecyclerView就会麻烦一点。一般都需要重写ItemDecoration,并给RecyclerView设置ItemDecoration。下面来介绍一下ItemDecoration中几个比较重要的方法。getItemOffsets(Rect outRect, View view, RecyclerView parent, State state
2016-10-12 19:30:04
792
原创 Android中使用surfaceview+MediaPlayer播放视频
android中播放视频主要有两种方式:使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型使用android自带的VideoView,这种方法太简单就不介绍了使用SurfaceView+MediaPlayer,这种方式效果比较好,这里也重点介绍SurfaceView从android 1.0就有了,十分好用。一般来说,UI对刷新都需要在UI
2016-07-30 14:24:33
3686
2
原创 设置状态栏透明
什么是透明状态栏android4.4后的版本可以让最上方的状态栏透明化,效果如下图 我们可以通过代码来修改,具体代码如下 @Override protected void onCreate(Bundle savedInstanceState) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
2016-06-06 20:50:28
373
原创 Android动态加载jar
之前,被人问到Android如何动态加载jar,当时不知道,一脸蒙B,就研究了一下。 首先需要创建一个jar包,不太清楚怎么样用Android studio创建jar包的同学可以看一下我的另一篇博客Android Studio导出Jar包。 新建一个Math类public class Math { public int getSum(int a,int b){ retur
2016-04-20 11:53:53
391
1
原创 Android中使用NDK
首先用Android Studio下载NDK 这个比较简单,就不多说了1.写调用jni的Java代码新建一个JniUtils类public class JniUtils { static { System.loadLibrary("test"); } public native String getString();}代码会报错,先不管,在后面解决跟方
2016-04-18 14:59:06
303
原创 阿里Android一面(校招)
4.8号晚上8点多接到了阿里一面的电话,面试官人很好,和我聊了半个多小时。我面的是无线事业部,就是做淘宝客户端的那个部门。面试问的都很基础,刚开始问了hashmap和快速排序。接着就是问Android相关的问题。因为数据结构和算法是基础,这里就不多说了,主要写一下与Android相关的问题。首先问了一个Android中事件分发的问题,如下图:一个LinerLayout里放一个Button,当点击Bu
2016-04-11 12:50:08
604
1
原创 Android中图片处理相关问题
在Android的开发中,我们经常回去处理一些图片相关的问题,比如当加载图片到内存中产生的OOM(OutOfMemory)异常、图片加载到内存中占多大内存的问题、jpg png两种常见的图片的原理及区别。图片加载到内存所占内存大小的问题在讲OOM异常前需要对图片的加载有所了解,所以在这里就先介绍图片加载的问题。 图片加载到内存中的大小,不是直接由图片的存储大小来决定的。比如一个10k大小的png格
2016-04-09 17:41:42
272
原创 排序算法分析
排序算法一般是笔试面试中经常出现的问题,最近在准备找工作,就整理了一下排序算法的有关知识。首先附上一张图 这是对各种排序算法的基本介绍。下面我们来逐一分析:插入排序: 简单介绍: 插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序。插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。代码演示: public void so
2016-03-25 09:43:11
228
原创 Android Studio导出Jar包
这篇博客将介绍一下如何用Android Studio导出jar包,希望能给大家带来帮助。首先需要修改build.gradle文件,在Android Studio中会显示多个build.gradle文件,如果你想要将整个项目导出成jar包,就找到对应项目名目录下的build.gradle文件,对其进行修改。有如下几个地方需要修改将最前面的apply plugin: 'com.android.appl
2016-03-15 17:23:34
706
原创 Android中的一些基础知识(三)
最近在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看。在TextView中显示图像(使用< img>标签)在TextView中显示图片的方法有许多种,常见的有通过View.setBackground()来设置背景、在onDraw方法中绘制。这里我讲一下用< img>标签来设置图像。 TextView可以通过富文本标签来显示富文本信息,这种标签类似于HTML
2016-03-14 22:01:48
313
原创 Android中的一些基础知识(二)
这几天在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看。简单介绍一下Activity的生命周期 在API文档中对生命周期回调的函数描述的很详细,这里我只是翻译了一下。onCreate:当Activity第一次被创建的时候调运。应该在这个回调函数中做所有的初始化操作,比如:创建View,给lists绑定数据等。在这个函数执行完后,通常会调运onStart方法。
2016-03-13 17:21:36
341
原创 Android学习之Drawable(一)
Drawable有很多种,它们表示一种图像概念,但它们不全是图片。Drawable是什么呢?下面是Google Android API中的定义: A Drawable is a general abstraction for “something that can be drawn.” Most often you will deal with Drawable as the type of r
2016-03-10 22:05:52
260
翻译 Android中的一些基础知识(一)
翻译自这里,并做了部分修改。什么是Android? Android是为移动设备提供的软件,它包括操作系统、中间件、和一些关键的应用程序。应用程序执行它自己的进程和在Dalvik虚拟机中的实例。Android应用程序体系结构描述 Services−将执行后台功能 Intent −将执行国际活动和数据传递机制之间的联系 Resource Externalization(资源外化)−字符串和图
2016-03-10 09:53:51
254
原创 Android消息机制之Handler
Android为什么要提供HandlerAndroid建议我们不要在UI线程中执行耗时操作,因为这很容易导致ANR异常(在Android源码中我们可以看到,UI如果对用户的操作超过5秒无响应,就会报ANR异常)。因此,一些耗时操作都会在子线程中完成。当我们在子线程中获取了数据,要将其显示到UI中,如果没有Handler,这将很难完成。因此,Android之所以提供Handler,就是为了解决子线程访
2016-03-08 22:11:04
283
原创 Android滑动事件冲突(demo演示)
首先,我们假设这样一个场景:一个ViewPager里面嵌套一个ViewPager,内部滑动方向和外部滑动方向一样时,该怎么解决这一冲突呢?再如:一个ViewPager里嵌套一个Listview呢? 针对滑动冲突这里给出两种解决方案:外部拦截法,内部拦截法外部拦截法情景:一个ViewPager嵌套了一个Listview,一个是左右滑动,一个上下滑动。这个时候我们可以用外部拦截法,来处理冲突。在父容
2016-03-07 16:39:13
815
原创 Activity的启动模式
activity有四种启动模式,分别为standard,singleTop,singleTask,singleInstance。
2016-03-05 18:37:52
222
原创 Android 屏幕适配
Android屏幕适配主要有五种方法:图片适配、布局适配、尺寸适配、权重适配、代码适配。前两种不太常用,后三种用的较多。图片适配开启4种分辨率的模拟器在drawable的多个目录下放置内容不同但命名相同的图片运行程序,查看在不同模拟器上的显示效果常规做法: 美工只做一套1280*720的图片,放置在drawable-xhdpi的目录下, ImageView宽高指定为确定的值, 不包裹屏幕
2016-03-04 19:29:09
216
原创 Android图片缓存及内存溢出
Android 图片三级缓存内存缓存,优先加载,速度最快本地缓存,次优先网络缓存,最后加载,速度慢,消耗流量UI ↓ ↑ 内存缓存 ↓ ↑ 本地缓存 ↓ ↑ 网络缓存内存溢出OOMAndroid默认给每个app只分配16M的内存java中的引用强引用 垃圾回收器不会回收, java默认引用都是强引用软引用 SoftReference 在内存不够时,垃圾回收器会
2016-03-02 21:22:46
258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人