Hiten's Blog.

Hiten's Blog.

初探AOP在Android中的使用

前些时间在学习Spring时看到AOP,即面向切面编程,这个概念很新鲜,感觉用起来特别牛逼,无奈我是相见恨晚啊,在网上搜一下关于Android AOP的可行方案,大约有两种,一个是阿里的开源项目Dexposed,另一个是AspectJ,在我拜读了看见了邓凡平老师的深入理解Android之AOP后,觉得用AspectJ
比较符合Java的本质吧,这个纯属自己的观点,哈哈哈!

如何集成

AspectJ的使用核心就是它的编译器,它就做了一件事,将AspectJ的代码在编译期插入目标程序当中,运行时跟在其它地方没什么两样,因此要使用它最关键的就是使用它的编译器去编译代码ajc。ajc会构建目标程序与AspectJ代码的联系,在编译期将AspectJ代码插入被切出的PointCut中,已达到AOP的目的。因此,无论在什么IDE上(如果使用命令行就可以直接使用ajc编译了),问题就是让IDE使用ajc作为编译器编译代码。

解读官方MVP架构

在Android应用开发中采用MVC好还是MVP好的话题,一直都争议不断,现在Android官方也来凑热闹了,官方出了个开源项目,来描绘一幅架构蓝图,该项目主要包括mvp,mvvm,clean架构,其中不乏Dagger2,rxjava等主流框架,项目中使用不同的架构来实现同一个Todo App,项目地址:https://github.com/googlesamples/android-architecture

今天先来看看MVP在Todo项目中的使用,项目地址:https://github.com/googlesamples/android-architecture/tree/todo-mvp
clone工程,编译运行效果:

Android6.0运行时权限总结

Beginning in Android 6.0 (API level 23), users grant permissions to apps while the app is running, not when they install the app. This approach streamlines the app install process, since the user does not need to grant permissions when they install or update the app. It also gives the user more control over the app’s functionality

上面是引用google官方文档的一段话,google将权限分为两类,一类是一般权限,一类是危险权限
一般权限有哪些,参加官方文档https://developer.android.com/guide/topics/security/normal-permissions.html
这些是一般的权限,看看那些是你认识的

我为什么要使用RxJava

接触RxJava半年左右,刚开始我一直在怀疑RxJava在Android中能做什么,上手不易,到处都是Observable让我觉得不习惯,但是研究明白了,就会被他的强大所折服。

这篇博客是我在项目中对RxJava的切实体会,不是RxJava基础知识讲解,RxJava一步一步讲解,可以看Hi大头鬼的博客。

Android中简单实现比例布局

前些时候阅读过google的iosched项目,发现有个自定义布局类:AspectRatioFrameLayout,这个类的代码很简单,却很有用,
就是实现一个高度跟宽度成比例的布局,我觉得在很多实际开发中,都会涉及到这个内容;关于这个保持宽高比的问题,我问了好几个人,
甚至在面试别人的时候也问到过,结果是很多人说没有考虑过这个问题,

解决ListView FootView不能完全隐藏

写过Android ListView加载更多功能的朋友可能都知道,我们经常会写一个footView,
通过设置ListView的addFootView方法增加尾布局,在列表滑动到底部的时候,触发footViw显示,
当没有更多数据的时候,会把footView隐藏。
但是在设置footView为gone时,虽然内容隐藏了,但是这块布局还在占着,像是设置成inVisible一样,我总结网上的解决方法,
有两种一般性解决方案:

avatar
Hiten
头像是我家小海豚,睡成一条虫了
FRIENDS
hanks