Android
文章平均质量分 89
阿蛮家
Andriod、Java技术分享
展开
-
Android的消息处理机制 Handler Looper Message
Looper线程就是一个不断循环工作的线程。被用来设计将一个普通线程变成Looper线程。一个Thread只能有一个Looper对象handler扮演了往MessageQuene上添加和处理消息的角色,通知MQ它要执行任务(sendMessage),并在Looper到自己的时候执行该任务(handlerMessage),整个过程是异步的。一个线程可以有多个handler,但是只转载 2016-01-17 18:38:10 · 385 阅读 · 0 评论 -
Google 官方Android MVP架构实践
一、Google 官方MVP介绍近期,关于Android开发架构的讨论沸沸扬扬,各大技术平台随处可见关于Android架构的技术文章。MVC、MVP、MVVM等等,就目前的形式来看,MVP模式在Android开发领域界逐渐流行了起来。前段时间,Google也忍耐不住Android MVP架构的火热程度,给广大Android程序员带来了福利,推出了Google官方MVP架构例子。源码见: htt原创 2016-05-10 11:11:37 · 17783 阅读 · 5 评论 -
Android Dagger2简单入门
一、什么是dagger2?Dagger2 是为Android和Java平台提供的一个完全静态的,在编译时进行依赖注入的框架。我们在做andriod开发的时候,一个Activity里面通常会实例化很多的类,才能使用这些的类中的方法和字段,通常,一个类很多Activity都会用到,我们就会在每个acitivity里面实例化该类。这样导致的问题就是,Activity会很依赖这些类,导致程序的耦合严重原创 2016-12-23 01:17:53 · 4282 阅读 · 2 评论 -
Android Git代码版本控制
一、选择阿里云code作为项目代码托管由于Github私有空间需要费用,所有这里选择阿里云code作为代码托管。点击阿里云code,注册账号,新建你要托管的项目空间,阿里云code会给你生成一个Git管理地址。二、Git环境搭建 1、Windows环境2、Mac环境Git安装步骤文档1)在Mac系统中,通常会预装Git,你可以通过打开命令终端原创 2016-11-22 13:32:41 · 1646 阅读 · 3 评论 -
学习笔记 Android 使用AIDL实现进程间通信
一、编写服务端代码1、新建一个Book类,实现Parcelablepackage com.licheng.android.weextest;import android.os.Parcel;import android.os.Parcelable;/** * Created by licheng on 15/11/16. */public class Book im原创 2016-11-15 15:20:21 · 629 阅读 · 0 评论 -
学习笔记 Android LocalBroadcastManager的使用
LocalBroadcastManager简介LocalBroadcastManager是Google官方AndroidSupport包提供的一个工具,用来管理广播的类。只能用来在同一个应用的不同组件之间发送广播,进行数据交互。和普通的全局广播相比较,LocalBroadcastManager的安全性相对较高。布局文件<LinearLayout xmlns:android="原创 2016-11-15 10:51:34 · 625 阅读 · 0 评论 -
weex环境配置快速上手
一、前言 4月21日,阿里巴巴在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请。 Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署。 对于移动开发者来说,Weex主要解决了频繁发版和多端研发两大痛点,同时解决了前端语言性能差原创 2016-10-31 23:02:52 · 3538 阅读 · 0 评论 -
Android greenDAO数据库配置教程
一、环境配置1、在Android Studio中,在.src/mian目录下新建一个java-gen文件夹,和java文件夹同级。用于存放greenDAO生成的DaoMaster、DaoSession、Table、TableDao实体类。2、配置项目的app.gradle文件,指定java-gen文件,引入greenDAO第三方jar包sourceSets {原创 2016-10-08 15:55:34 · 3184 阅读 · 3 评论 -
Android Proguard混淆打包经验总结
作为一名Android开发,应该了解并尝试给自己的项目进行Proguard混淆打包。项目经过Proguard混淆打包后,会发现apk包体积会变小,也就是混淆可以使得apk瘦身;并且反编译apk的时候会发现, 项目中的源码都被处理过,进一步保障了apk的安全;这就是我所理解的Proguard混淆打包的两个优点。不过,想要真正给自己的项目进行Proguard混淆打包,可不是一件容易的事情,真正尝试去做原创 2016-09-23 14:22:38 · 3492 阅读 · 0 评论 -
《Android开发艺术探索》之View的事件体系和工作原理学习笔记
书中把自定义View分为下面4类:1、继承View重写onDraw方法这种方法主要用于实现一些不规则的效果,不方便通过布局的组合方式来达到,一般需要自己绘制图形并实现动画等效果。需要重写onDraw方法。采用该方法需要自己支持wrap_content和padding。2、继承ViewGroup派生特殊的Layout这种方法主要用于实现自定义的布局,除了系统的LinearLayout原创 2016-08-03 23:38:40 · 728 阅读 · 0 评论 -
Android线程学习笔记
UI线程要处理所有任务时,那些耗时很长的操作——诸如访问网络或查询数据库等——将会阻塞整个UI(线程)。一旦线程被阻塞,所有事件都不能被分发,包括屏幕绘图事件。从用户的角度看来,应用程序看上去像是挂起了。更糟糕的是,如果UI线程被阻塞超过一定时间(目前大约是5秒钟),用户就会被提示那个可恶的“应用程序没有响应”(ANR)对话框。此外,Andoid的UI组件包并不是线程安全的。因此不允许原创 2016-08-05 01:30:57 · 1302 阅读 · 0 评论 -
自定义PopWindow模仿微信拍照上传头像
我们先来看看微信的效果图:然后我们来自己实现:一、自定义布局 res/layout/popwindow_takephoto.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_w原创 2016-08-16 01:55:48 · 3427 阅读 · 0 评论 -
Android动画知识点汇总
Android的动画可以分为三种:View动画、帧动画和属性动画。View动画通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度)从而产生动画效果,View动画支持自定义。帧动画通过顺序播放一系列图像从而产生动画效果。属性动画通过动态改变对象的属性从而达到动画效果。关于Android动画的大部分知识点,我用下面这张图来概述。一、View动画View动画支持4中动画效果,分别原创 2016-07-27 00:33:00 · 732 阅读 · 0 评论 -
Android使用Messenger实现进程间双向通信
在了解本文即将学到的技能外,有些知识还是有必要提前知道的,这样才会更容易理解本文即将讲到的知识点。需要提前预热的知识点:1、Android四大组件之一Service,要知道怎样去写一个Service,Service有哪两种启动方式;2、Android Service启动方式之Bound Service;3、Android基础知识之Messenger;掌握了这三个知识点,就可以快速入原创 2016-07-24 12:01:03 · 3367 阅读 · 0 评论 -
ScrollView滑动监听实现界面动画效果
Andriod进阶知识之一,滑动监听也是初学者不得不学习的一项技能。关于滑动,你能想到什么?ScrollView、ListView、GridView、WebView、RecyclerView。。。你是否写过或研究过ScrollView滑动监听的代码呢?其他控件的滑动监听代码是怎么实现的呢?看看下面的效果,是不是很想实现?让我们带着这些疑问,一起进入Android滑动监听的世界吧!原创 2016-06-21 00:32:35 · 4598 阅读 · 2 评论 -
Android Studio 教你在debug调试模式下使用正式签名
这个问题是我在配置QQ第三方登陆时遇到的,QQ第三方登陆如果上传正式发布包到腾讯应用宝,也就是正式版的签名,测试三方登陆时也只能用正式签名测试,对于开发者来说,实在太痛苦了,因为开发者做测试都是运行起来都是在debug模式下,签名也是debug模式下的签名。腾讯开放平台有一个应用调试者QQ号测试,不知道是不是填写了开发者的QQ号之后就可以用正式版的签名做第三方登陆测试了,每次我点击添加,结果就这样原创 2016-04-18 19:10:31 · 9171 阅读 · 2 评论 -
RxAndroid 实践快速入门
一、RxJava概念 RxJava官方定义 一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。用一个词概括:异步,也就是说RxJava也可以理解为一个处理异步的类库。Android也提供了处理异步的工具AsyncTask、Handler,当我们处理较复杂的异步时,异步代码难写且难以读懂。RxJava相对于AsyncTask和Handler的好处就是让异原创 2016-05-25 17:17:25 · 6129 阅读 · 6 评论 -
Android项目开发经验汇总
1、图片byte数据转Bitmap使用Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath())容易导致内存溢出。public static Bitmap decodeImg(byte[] imgByte) { Bitmap bitmap = null; InputStream inpu原创 2016-03-18 11:13:26 · 527 阅读 · 0 评论 -
Effective Java 第八条:覆盖equals请遵守通用约定
首先介绍一下Java中equals通用约定,分别是:自反性、对称性、一致性、传递性。检查自反性的通用方法:将对象扔到List里,然后看List.contains()是否返回true。首先来看一个违反对称性的例子:public class CaseInsesitiveString { private final String s; public Ca原创 2016-04-18 22:18:16 · 490 阅读 · 0 评论