自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

转载 Android组件化框架设计与实践

在目前移动互联网时代,每个 APP 就是流量入口,与过去 PC Web 浏览器时代不同的是,APP 的体验与迭代速度影响着用户的粘性,这同时也对从事移动开发人员提出更高要求,进而移动端框架也层出不穷。服务端与移动端对比上图显示的是传统的服务端架构和客户端 App 架构对比。传统的服务端架构中最底下是一个 OS,一般是 Linux,最上面服务端的业务,而中间有非常多的层次可以在架构上,按照我们的意愿搭建中间的各个层次的衔接环节,使得架构具有足够的灵活性和扩展性。但是到了 App 就会面对一个完全不

2020-11-14 23:53:08 337

转载 LeakCanary原理解析

LeakCanary是一款开源的内存泄漏检查工具,在项目中,可以使用它来检测Activity是否能够被GC及时回收。github的地址为https://github.com/square/leakcanary使用方式解析将LeakCanary引入AS,在Application中调用如下方法,可以跟踪Activity是否被GC回收。入口函数LeakCanary.install()方法的调用流程如下所示:install方法调用流程Install方法如下:install方法

2020-11-14 23:10:42 222

转载 如何在Android7.0系统下通过Intent安装apk

Android7.0的系统上,进行安装apk, 会报这段错误。 > Caused by: android.os.FileUriExposedException

2016-12-21 10:39:40 21584 3

转载 Android Studio提高开发效率必备神器 - JRebel for Android

Android开发的同学都知道,随着Android项目越来越大,编译时间也会逐步增加,项目里随便改几行代码,重新编译一下,少则几十秒,多则三四分钟,实在让人崩溃。网上很多技术博客都提出了各种提高编译速度的版本,本人也试验过很多方法,收效甚微。这篇文章想给大家介绍的内容就是一个让你不用再苦等的AndroidStudio插件工具。

2016-08-10 14:55:40 10760 1

原创 LocalBroadcastManager源码解析

LocalBroadcastManager源码解析1.简介LocalBroadcastManager是Android v4兼容包提供的应用内广播发送与接收的工具类。BroadcastReceiver的通信是基于Binder机制,而LocalBroadcastManager的核心是基于Handler机制。相比BroadcastReceiver的广播,LocalBroadcastManager有以下几点

2016-05-18 20:36:27 1125

原创 ListView聊天窗口与输入法键盘冲突解决方法(聊天框在viewpager里)

在使用listView显示聊天窗口时,弹出输入法,我们期待的效果是输入框上移动,listview自动定位到最后的聊天内容。 但是项目中遇到了这样的情况,聊天框底下有tab,我们就需要解决三件事。 1.输入法弹出时候ListView聊天内容不被遮挡 2.输入法弹出的时候,底部tab隐藏 3.输入法弹出的时候,聊天内容自动定位到最后一行。1.在manifest的activity中设置

2016-05-14 11:41:19 2114

转载 为Android Studio 项目手动下载gradle

原文: http://www.cnblogs.com/duanguyuan/p/3997550.html在 http://developer.android.com/samples/index.html 上下载的例子,导入Android Studio的时候,第一件事就是下载项目对应版本的gradle。gradle是一个主要面向Java应用的build工具,类似于大家熟知的eclipse下的Ant,

2016-05-12 14:01:08 2304

原创 Fragment的setUserVisibleHint详解

Android应用开发过程中,ViewPager同时加载多个fragment,以实现多tab页面快速切换, 但是fragment初始化时若加载的内容较多,就可能导致整个应用启动速度缓慢,影响用户体验。 为了提高用户体验,我们会使用”懒加载”方案,实现分批加载。那么,setUserVisibleHint什么时候调用呢

2016-04-28 20:25:30 58370 2

原创 Android网络框架 - Retrofit基本使用

Retrofit网络框架使用大致可分为三步。 1. 封装统一接口访问类RestAdapter 2. 定义每个接口参数和url 3. 实现每个callback1. 封装RestAdapter统一接口访问类public class Server {

2016-04-27 22:18:56 601

原创 Git 基础命令操作指引

Git 基础命令操作指引

2016-04-26 13:58:34 803

转载 架构师重构代码的12条军规

转载请标明出处: 本文出自 http://www.jiagoushuo.com/article/1000099.html?ref=myread对于开发者来说,架构设计是软件研发过程中最重要的一环,所谓没有图纸,就建不了房子。在遍地App的互联网时代,架构设计有了一些比较成熟的模式,开发者和架构师也可以经常借鉴。但是,随着应用的不断发展,最初的架构往往面临着各种问题,比如无法满足客户的

2016-04-10 21:14:10 1575

原创 解决lint task执行失败问题

Android Studio 执行 lint task的时候出错

2016-03-22 09:59:20 18683 5

原创 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central

本文转自: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0623/3

2016-03-09 22:52:25 621

原创 gpg Permission denied

gpg安装过程中,出现如下错误。We need to generate a lot of random bytes. It is a good idea to performsome other action (type on the keyboard, move the mouse, utilize thedisks) during the prime generation; this giv

2016-03-09 11:33:17 2680

原创 Android分享机制总结

Android应用分享功能是一般应用所必不可少到功能。 一般有以下三种方式。1.调用系统Activity进行分享这种方式最为简单,但是有些分享软件的高级功能无法使用。 分享一般分为图片,文字,或者图片文字混合的分享。

2016-03-03 21:23:19 946

原创 如何在子模块中获取BuildConfig.DEBUG值

我们一般可以通过设定一个布尔类型达常量,来标记软件为Debug模式还是Release模式。 ADT 17版本以后,我们可以通过读取build/BuildConfig.java文件里DEBUG常量来判断。

2016-03-01 21:27:52 4976 3

原创 Java反射机制

1.反射机制的概念反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。2.反射的作用根据.class文件反编译通过反射调用类的私有变量,方法,构造函数动态创建对象和编译3.反射常用类和方法反射主要涉及的类: java.lang.Class; java.lang.reflect.Constructor; ja

2016-02-19 22:20:06 505

原创 Android注解使用快速入门

注解是那些插入到源码中用于某种工具处理的标签。在java语言中,注解被当作一个修饰符使用的,每个注解的名称前面都加上了@符号。注解自身并不会做任何事情,它需要通过注解事件处理器处理后,才会有用。注解在Android应用开发当中,使用还是很广泛的。很多热门的框架都使用了注解,例如,butterknife ,retrofit,一些主流的数据库框架等。一个完整的注解应用通常由三部分组成。注解接口定义定

2016-02-16 23:08:13 1782

转载 RESTful API 设计指南

原文出处: 阮一峰网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现”API First”的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。

2016-02-15 16:10:53 555

原创 Java类初始化顺序

Java程序在它运行之前,并非完全加载,其各个部分是在必需时才加载。Java类的初始化顺序,是先静态对象,而后是非静态对象。类加载器加载class文件时,初始化静态对象。new操作符时,初始化非静态对象。在类的内部,变量定义的先后决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造方法)被调用之前得到初始化。1.无继承类初始化public class Client {

2016-01-22 00:04:41 514

原创 git submodule 使用命令简介

抽取项目公共模块,多用项目公用,必然会使用到git submodule命名。 submodule的管理,无外乎添加,更新,删除等操作。submodule 添加进入到git项目根目录下,输入命令: git submodule add 仓库地址 本地路径若出现如下提示,则表示submodule添加成功。命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模

2016-01-21 16:02:23 15911 1

原创 Android自定义Dialog的Match_parent无效问题解决

Android 开发过程中,自定义dialog 用得很多,通常都是通过继承Dialog, 再加载自定义的xml来实现。

2016-01-14 17:13:30 10661 5

原创 单个电脑上进行多ssh-key配置

ssh是一种网络协议,用于计算机之间的加密登录。由于公司使用的是git进行代码管理,而在公司电脑上有时也需要访问github。所以,在同一台机器上配置两个ssh-key很有必要。

2016-01-05 23:39:15 3034 1

原创 Android Studio资源自动清理工具 - Lint Cleaner Plugin

文章参考自:https://github.com/marcoRS/lint-cleaner-pluginAndroid项目随着迭代时间越来越长,代码废弃资源也会越来越多。 Lint Cleaner Plugin这个github源上小工具,简单易用,省去了不少麻烦。首先,配置一下app的build.gradle文件buildscript { repositories { mavenCen

2015-12-28 16:59:41 4337

原创 Android 解决65535的限制(官网推荐方法)

随着Android平台持续增长,Android应用程序越来越大。在Android系统中,一个App的所有代码都在一个Dex文件里面。

2015-12-28 16:47:13 15976 2

原创 android studio gradlew编译时proguardRelease报错

项目开发过程中,编译遇到这样的错误。 不进行混淆,用android studio直接编译不报错。 但是混淆后,就报错。而且报错代码与项目代码无关。 错误如下::app:compileReleaseNdk UP-TO-DATE:app:proguardReleaseWarning: u.aly.bt: can't find referenced method 'int checkSelfPe

2015-12-22 16:08:15 3724

原创 Android设备获取扫码枪扫描内容

条形码扫码枪现在随处可见,可以很迅速地扫描出条形码内容,比什么手机相机扫码快了不是一点两点。 为了节约成本,扫码枪可以直接通过蓝牙连接android或其他设备。 那么android设备如何通过蓝牙获取扫描内容的呢?

2015-12-20 13:03:14 39440 10

转载 面试时,问哪些问题能试出一个Android应用开发者真正的水平?

一般面试时间短则30分钟,多则1个小时,这么点时间要全面考察一个人难度很大,需要一些技巧,这里我不局限于回答题主的问题,而是分享一下我个人关于如何做好Android技术面试的一些经验:面试前的准备 1. 简历调查   简历到你手上的时候,你要做好充分的调查分析,不仅仅是对公司负责,也是对自己与候选人时间的尊重,明显不match的简历,就不要抱着“要不喊过来试试看”的想法了,候选人也许很不错,但如

2015-12-15 09:41:06 2654 1

转载 浅谈 MVP in Android

转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46596109; 本文出自:【张鸿洋的博客】一、概述对于MVP(Model View Presenter),大多数人都能说出一二:“MVC的演化版本”,“让Model和View完全解耦”等等。本篇博文仅是为了做下记录,提出一些自己的看法,和帮助大家如何针对

2015-12-11 17:11:05 502

原创 Android开发基本命名规范

万丈高楼平地起,再高的楼如果地基不稳最终也会崩塌。 代码命名规范至关重要。(一) 布局Layout文件命名1. Activity View命名:activity_功能模块_子描述_子描述2.xml例如:activity_main.xml、activity_register_basicinfo.xml2. Fragment View命名:fragment_功能模块_子描述_子描述2.xml例如:

2015-12-10 14:17:16 917

原创 设计模式之单例模式

设计模式之单例模式单例模式是23种设计模式中最为简单的一种。单例模式定义 Ensure a class has only one instance, and provide a global point of access to it. (确保某一个类只有实例,并向整个系统提供这是实例)通常情况下,单例模式实现有两种方式。饿汉式单例懒汉式单例具体实现根据实际情况不同,分为以下几种。

2015-12-08 22:20:37 383

原创 Android如何重新签名APK

1. 删除apk包中旧的签名文件将apk重命名为zip文件,解压后,将其中META-INF文件夹删除,再改回.apk格式。2. 进入到java安装目录,进入bin文件夹3.命令行生成keystorekeytool -genkey -alias nt.android -keyalg RSA -validity 20000 -keystorent.keyst

2015-10-30 12:20:18 2360

原创 Android实现组合键监听功能

昨天接到一个任务,要做一下组合键长按监听事件。由于Android设备是自家的,有点搓,系统代码根本没有区分长按和短按功能。只能应用层实现。话不多说,代码如下, @Override public boolean dispatchKeyEvent(KeyEvent event) { int keyCode = event.getKeyCod

2015-10-11 16:22:23 5222

原创 Android不同分辨率图片实际显示大小的计算

Android应用多分辨率屏幕匹配,如何计算图片在手机上实际显示大小

2015-09-19 12:11:39 6172

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除