android 高手进阶
Bee大前端
更好的生活需要你更多的知识来铺垫!
展开
-
Android Dalvik虚拟机初识
首先,让我们来思考下面几个问题:什么是Dalvik虚拟机?Dalvik VM与JVM有什么区别?Dalvik VM有什么新的特点?Dalvik VM的架构是怎么样的? 首先,我得承认第一个问题问得很傻:什么是Dalvik虚拟机?没有人给出过一个明确的定义,但是,我们似乎可以从人们对Java虚拟机的描述中得到些信息。 Java转载 2015-07-03 22:11:35 · 430 阅读 · 0 评论 -
android是如何加载资源图片的
每个drawable文件夹加载顺序是什么? 图片是如何缩放的? (这边只讨论加载图片,不考虑布局对图片的拉伸)OK!今天就先搞这2个问题 废话不多说 直接上代码public Drawable getDrawable(int id) throws NotFoundException { TypedValue value; syn转载 2015-05-12 10:25:14 · 391 阅读 · 0 评论 -
Android并发编程线程间通信的三种基本方式
1. 使用管道流Pipes“管道”是java.io包的一部分。它是Java的特性,而不是Android特有的。一条“管道”为两个线程建立一个单向的通道。生产者负责写数据,消费者负责读取数据。下面是一个使用管道流进行通信的例子。public class PipeExampleActivity extends Activity { private static fin转载 2015-03-14 16:17:30 · 3274 阅读 · 0 评论 -
Android高效加载大图、多图解决方案,有效避免程序OOM流程
比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多。大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory)异常。我们可以通过下面的代码看出每个应用程序最高可用内存是多少。int maxMemory = (int) (Runtime.getRuntime().maxMemor转载 2015-05-12 11:06:09 · 452 阅读 · 0 评论 -
高仿QQ消息,可以下拉刷新带小红点
最近在做即时通讯这一块,老板不知道怎么想的,反正完全是照着QQ做的,而我个人又非常喜欢qq侧滑操作这个效果,于是想找来用,但是翻遍了网络,没有一个像样的例子,有相似的也是各种bug各种限制,我也崩溃啊,没办法只好自己搞一个了。不多说上效果图:具体实现呢,是自定义的listview来做的,本来的思路是自定义item的根布局来做,结果出来之后,事件的分发处理,特别不好弄,各种不流畅。于是改用自定义lis原创 2015-12-08 11:06:32 · 1772 阅读 · 0 评论 -
LayoutInflater inflate探究
下面这个方法,我们应该经常使用吧,加载布局文件的LayoutInflater.from(context).inflate(int resource, ViewGroup root, boolean attachToRoot)虽然我们经常使用吧,但是有时候还是有些迷惑的,今天带大家一同探究一下,加深下记忆看源码:我们先找到这里 public View inflate(int resource,原创 2015-11-14 23:35:06 · 412 阅读 · 0 评论 -
Android Studio 混淆代码
最近几天混淆代码遇到了一些问题,整理一下!~ 首先app里面gradle里面配置一下 buildTypes { release { buildConfigField "boolean", "LOG_DEBUG", "true"//是否输出LOG信息 minifyEnabled true//混淆编译 zipA原创 2016-05-27 18:08:33 · 1607 阅读 · 0 评论 -
Android代码规范
1、Android命名规范Java类文件命名规范1、 Activity命名规范:以Activity作为后缀。例如:PersonActivitty2、Adapter命名规范:以Adapter作为后缀 。例如:PersonAdapter3、Entity命名规范:大多以Entity作为后缀。例如:PersonEntity4、其他的类似于前面的要求。例如:Fragment,PopupWindow等等方法原创 2016-05-28 12:20:01 · 552 阅读 · 0 评论 -
自定义页面加载LoadingLayout
做项目当中总是遇到页面数据加载的情况,自定义了几个加载情况的xml布局,例如加载失败,加载数据为空,加载成功,正在加载等,但是发现每次都需要根据加载情况去处理显示哪种xml,很麻烦,也很容易出错,所以我就想以自定义组合控件的方式来处理,达到复用的目的,代码可优化的地方有很多,大家可以根据自己的需求做修改。 首先自定义属性了: <!--loadinglayout--> <declare原创 2016-05-10 12:50:52 · 2223 阅读 · 0 评论 -
Android MVP架构简单封装
最近在研究MVP和MVVM架构模式,看了看觉得还是MVP好做点,特意查查资料,做了下简单的封装。先看一下自己封装项目的基本库结构。 来看看源码吧 BasePresenter.javapublic abstract class BasePresenter<T> { protected Reference<T> mViewRef;//View接口类型的弱引用 public void原创 2016-05-29 20:13:19 · 2459 阅读 · 0 评论 -
Android textView drawableXX图片大小
TextView自带的drawableLeft属性竟然不能设置图片大小,简直不能忍,啥也不说了,直接上代码 <!--drawableTextView--> <declare-styleable name="DrawableTextView"> <attr name="leftDrawableWidth" format="dimension" /> <at原创 2016-12-07 17:12:02 · 5692 阅读 · 0 评论 -
Android消息机制
基础介绍异步消息处理线程是指,线程在启动后会进入一个无线循环体中,没循环一次,从内部的消息队列中取出一个一个消息,并回调相应的消息处理函数,执行完一个消息后则继续循环。如果消息队列为空,线程会暂停,知道消息队列中有新的消息。异步消息处理线程本质上仍然是一个线程,只不过这种线程的执行代码设置成如上所述的逻辑而已。在android中实现异步线程主要涉及到如下几个类:ThreadLoca原创 2015-06-03 14:11:15 · 417 阅读 · 0 评论 -
android动画总结
文章大部分内容来自【工匠若水 http://blog.csdn.net/yanbober 1、动画的分类视图动画(View Animation) 视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。帧动画、Frame 动画(Drawable Animation) 这种动画其实可以划分到视图动画的类别,专门用来一个一个的显示Drawable的resources,转载 2015-11-03 15:10:54 · 428 阅读 · 0 评论 -
android 沉浸式状态栏的两种实现方式
由于沉浸式状态栏只支持4.4以上,即API应该大于等于19,所以我们只说4.4以上和5.0以上。一、主题设置法很简单即给我们的activity设置主题:由于我的项目支持6.0所以默认的是 Theme.AppCompat.Light.NoActionBar,我们在AppTheme的基础上,再添加一个item属性,如下代码,这个支持4.4以上5.0以下 <style name="AppTheme"原创 2015-12-10 17:21:13 · 908 阅读 · 1 评论 -
Android 中对于图片的内存优化方法
1. 对图片本身进行操作尽量不要使用 setImageBitmap、setImageResource、 BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 decode 后,最终都是通过 Java 层的 createBitmap 来完成的,需要消耗更多内存。因此,改用先通过 BitmapFactory.decodeStream 方法,创建出一个 b转载 2015-05-12 11:59:13 · 362 阅读 · 0 评论 -
为什么Android手机越用越慢
根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果。在业内,Android手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这无疑是一件令人困扰的事情。转载 2015-07-14 14:50:38 · 614 阅读 · 0 评论 -
text字体高度的探究
最近学习自定义view,突然感觉对Paint.drawText(String text,int x,int y,Paint paint)的参数自己根本不理解,于是就探究一下吧,这一探究 ,出事了~ 第一个参数不说了,需要绘制的字符串,第二个参数自己测试了一下,应该是开始绘制的x坐标,第三个参数那么应该就是绘制开始的y坐标了(字符串的下方),第四个参数画笔,没啥可说的。但是绘制出来之后完全不是那个样原创 2015-08-08 23:08:53 · 940 阅读 · 0 评论 -
自定义各种裁剪框、扫描框
由于项目的需要,我们需要三种裁剪框,矩形裁剪框相信大家都不陌生,矩形的比较简单,思路:例如:正方形的裁剪框,我们只需要设置画笔的颜色为半透明的,然后绘制上下左右四个矩形即可组成一个正方形,那么圆形的怎么画呢?如果是同样的思路,那么我们就需要画两个不规则的图形,来组成圆,关键的地方就是那个半圆弧怎么画?我想到了用path,下面大家看一下效果: 正方形:原创 2015-08-07 17:43:32 · 1577 阅读 · 0 评论 -
自定义View之会动的闪电
前两天在csdn手机端上看到貌似是有个app具有这个闪电的loading标志,非常感兴趣,正好目前正在学习自定义view,所以就想自己来实现一下,还好自己完成了,不是很难~ 效果图: 由于是手机上截的图,所以没有弄成动态的,大家体谅一下哈。 下面是代码: 首先自定义view的属性,我先以属性的形式实现了,大家如果想做成loading的效果的话,可以自己去实现。。<resources>原创 2015-08-07 17:08:50 · 1087 阅读 · 0 评论 -
自定义view之音量控制
最近一直在学习自定义view,我是hongyang的一个小粉,hongyang老大也是我辈之楷模啊,奈何,自己太菜,只能一步一步的去攀爬了,下面的这个是学习hongyang老大的文章之一,加上自己的理解,练习一下:先看效果图: 首先是自定义的属性:<resources> <declare-styleable name="AudioControlView"> <!--上方原创 2015-08-07 18:08:08 · 686 阅读 · 0 评论 -
Android 组合控件
自定义view分为三种: 1、直接继承View 2、继承现有控件 3、组合现有控件,组成新的控件。 组合控件就属于第三种,算是最简单的一种了吧 虽然知道简单,但是还是决定写一篇博客,熟悉一下流程,温故而知新吧一、定义需要组合控件的视图,当然也可以在代码中定义 例如:定义一个button Button button=new Button(); 简单的还好,但是如果是复杂的布局就需要写大原创 2015-11-14 21:20:37 · 444 阅读 · 0 评论 -
仿微信通过拍照、本地图片然后裁剪完美更换头像
其实更换头像这个功能是个老梗了,写的人也很多,但是我没有看见过特别让我满意的,没办法,只能自己搞了。这里面我只说难点吧,最后的会附上完整的代码。这里面涉及到的功能有哪些呢? 大概有:拍照 、扫描本地图片、裁剪、可以拖动放大缩小的图片、圆形头像,自认为还是比较不错的,代码风格可能能有改进,大家可以自行修改!~一、首页main.activitypublic class MainActivity ext原创 2015-11-18 10:26:01 · 6581 阅读 · 6 评论 -
android matrix
Matrix,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。 首先介绍一下矩阵运算。加法和减法就不用说了,太简单了,对应位相加就好。图像处理,主要用到的是乘法。下面是一个乘法的公式: 在Android里面,Matrix由9个float值构成,是一个3*3的矩阵。如下图。转载 2015-06-01 15:53:32 · 425 阅读 · 0 评论 -
Android内存泄漏
不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全结束后,它所有的对象就都不可达了,系统转载 2015-05-12 11:56:04 · 367 阅读 · 0 评论 -
2018金三银四,Android大厂面试题整理
目录(1)java面试题 (2)Android面试题 (3)高端技术面试题 (4)非技术性问题&HR问题汇总java面试题熟练掌握java是很关键的,大公司不仅仅要求你会使用几个api,更多的是要你熟悉源码实现原理,甚至要你知道有哪些不足,怎么改进,还有一些java有关的一些算法,设计模式等等。(一) java基础面试知识点java中==和equals和hashCo...转载 2018-03-18 18:42:21 · 3251 阅读 · 1 评论