自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Canvas 的使用

前言Canvas 本意是画布的意思,然而将它理解为绘制工具一点也不为过。通过 Canvas 提供的 API,你可以在画布上绘制出绝大部分图形,再配合上一些操作画布的 API,比如旋转剪裁等变换画布的操作,就能够巧妙地画出更加复杂的图形。drawXXX系列canvas.drawArc 方法: drawArc(RectF oval, float startAngle, flo...

2018-11-16 10:43:42 429

原创 为什么不能根据返回类型区分重载?

重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写...

2018-07-11 00:06:11 1127

原创 RadioGroup调用check()方法onCheckedChanged()调用多次,改为radiobutton.toggle

布局文件activity_main.xml如下:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" ...

2018-06-29 14:53:55 1310

原创 排序算法思路简介

选择排序:   1.排序的过程中,数组分为前后两部分:排序完成的、待排序的部分。                    2.找出未排序数组中的最小值,与排好序数组的后面一个item值进行交换。                    3.交换最少的排序                    4.时间复杂度O(n方),即比较的次数。插入排序:   1.排序的过程中,数组分为前后两部分:排序完成的、待排...

2018-05-21 14:39:21 308

转载 用两个栈实现队列 - Java

题目:用两个栈实现一个队列。队列的声明如下:请实现他的两个函数appendTail和deleteHead, 分别完成在队列尾部插入节点和在队列头部删除节点的功能。package Solution;import java.util.Stack;/** * 剑指offer面试题7:用两个栈实现队列 * 题目:用两个栈实现一个队列。队列的声明如下:请实现他的两个函数appendTail和d...

2018-05-16 17:29:00 186

原创 Caught a RuntimeException from the binder stub implementation.

08-25 11:51:59.630 29087-9866/me.aber.app.arrayapdapterdemoD/dalvikvm? GC_FOR_ALLOC freed 2055K, 52% free 7378K/15192K, paused 24ms, total 30ms08-25 11:52:01.923 29087-9866/me.aber.app.arrayapda...

2018-05-09 10:58:11 4869 1

原创 Java常用正则表达式

验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$验证非零的正整数:^\+?[1-9][0-9]*$验证非零的负整数:^\-[1...

2018-03-28 11:58:48 159

转载 java List 深度复制方法

之前探讨过Java数组的深复制问题,现在来说说<一些不靠谱的java.util.List深复制方法>。为什么不说<靠谱的深复制方法>呢?因为在寻找探索<靠谱的深复制方法>的过程中,我发现了这些不靠谱的方法,写下来是希望给自己和他人提个醒,不要犯这样的错误。 这是下面要频繁使用的一个JavaBean Java代码  class Person implements ...

2018-03-05 15:02:55 990 1

原创 Android 友盟多渠道打包

目前项目中使用到了多渠道打包的功能,首先理解多渠道打包,渠道可理解成安卓apk应用市场平台,所以多渠道打包可以理解成在打包多个应用市场的apk,要在每个应用市场上打包一个安卓Apk,这样好处是可以在查看apk在每个安卓市场的下载量,活跃度,便于公司进行重点运营和推广,因为友盟多渠道统计比较成熟,所以公司采用的是友盟的多渠道打包统计;1.在清单文件里加入下面代码:<meta-data and...

2018-02-11 14:52:16 266

原创 友盟多渠道打包

目前项目中使用到了多渠道打包的功能,首先理解多渠道打包,渠道可理解成安卓apk应用市场平台,所以多渠道打包可以理解成在打包多个应用市场的apk,要在每个应用市场上打包一个安卓Apk,这样好处是可以在查看apk在每个安卓市场的下载量,活跃度,便于公司进行重点运营和推广,因为友盟多渠道统计比较成熟,所以公司采用的是友盟的多渠道打包统计;多渠道打包的步骤: 以友盟的渠道统计为例,渠道信息一般在 Andr...

2018-02-11 09:07:16 163

原创 友盟多渠道打包

目前项目中使用到了多渠道打包的功能,首先理解多渠道打包,渠道可理解成安卓apk应用市场平台,所以多渠道打包可以理解成在打包多个应用市场的apk,要在每个应用市场上打包一个安卓Apk,这样好处是可以在查看apk在每个安卓市场的下载量,活跃度,便于公司进行重点运营和推广,因为友盟多渠道统计比较成熟,所以公司采用的是友盟的多渠道打包统计;多渠道打包的步骤: 以友盟的渠道统计为例,渠道信息一般在 Andr...

2018-02-09 17:41:38 146

原创 友盟多渠道打包

目前项目中使用到了多渠道打包的功能,首先理解多渠道打包,渠道可理解成安卓apk应用市场平台,所以多渠道打包可以理解成在打包多个应用市场的apk,要在每个应用市场上打包一个安卓Apk,这样好处是可以在查看apk在每个安卓市场的下载量,活跃度,便于公司进行重点运营和推广,因为友盟多渠道统计比较成熟,所以公司采用的是友盟的多渠道打包统计;多渠道打包的步骤: 以友盟的渠道统计为例,渠道信息一般在 Andr...

2018-02-09 17:22:55 161

原创 数据库的内存泄漏检测

当一个应用变得复杂,SQLite使用得频繁,就容易出现数据库泄漏 leaked:A SQLiteConnection object for database 'nowamagic.db' was leaked! Please fix your application to end transactions in progress properly and to close the

2017-12-26 10:38:39 1383

转载 数据库封装

一、为什么封装数据库?  其实封装数据库的原因和封装网络连接的原因是相同的。在这我们就简单的说一下原因:类似于网络连接,数据库创建和操作的方式也是很多了:不同数据库有不同的API,像MySQL,SQLite等,在Xutils框架中也给我们封装了数据库的操作方法。假设在开发应用时,我们使用的是SQLite数据库及其API,但是在接下来的升级和维护中,我们要将数据库的操作修改为xUtils框架

2017-12-19 11:45:18 290

原创 getReadableDatebase() 和getwriteableDatebase()的解读

1. 两个方法干嘛的?两个方法都是用于获取数据库的读写对象,并不是字面上一个获取读取数据库的对象,另一个获取写数据库的对象。2. getWritableDatabase()源码注释:/** * Create and/or open a database that will be used for reading and writing. * The first time this is

2017-12-14 17:48:03 1290

转载 Git 的 4 个阶段的撤销更改

来源:张京www.fengerzh.com/git-reset/虽然git诞生距今已有12年之久,网上各种关于git的介绍文章数不胜数,但是依然有很多人(包括我自己在内)对于它的功能不能完全掌握。以下的介绍只是基于我个人对于git的理解,并且可能生编硬造了一些不完全符合git说法的词语。目的只是为了让git通俗化,使初学者也能大概了解如何快速上手

2017-12-04 13:11:49 197

转载 Activity与Service进行通信的三种方式

Activity与Service进行通信的三种方式第一种 简单通信直接通过Intent进行传值,我们在启动一个Service的时候通过Intent的对象向Service进行传值,这种方式传递值比较不方便,性能不是很高。(1)在MainActivity中通过启动服务和终止服务的按钮分别调用startService(intent)和stopService(intent)

2017-11-16 09:51:04 4783

转载 MVP实战心得(三)---封装Retrofit2.0+RxAndroid+RxBus

转载请标明出处:http://www.jianshu.com/p/2a2464938b47本文出自:Jlanglang介绍:Retrofit:对okhttp的封装,可以更方便的使用okhttpRxAndroid响应式编程框架,rxjava的扩展,很爽的链式编程魅力在于对数据的处理,与线程切换的灵活性.用来处理异步操作(Lambda表达式不会用.用Lambda表达式代码会更少,但不会

2017-11-03 11:15:11 405

转载 Mvp实战心得(二)---Base基类的封装

转载请标明出处:http://www.jianshu.com/p/651146bd0688本文出自:Jlanglang基类:在开发中有着很重要的地位,基类设计封装的好,不管是对app的性能,还是对开发的效率都有着很重要的作用基类可以简单几个字概况,一个良好的父类.结构:不管你的app是多个acitivity,还是1个activity+n个fragment,还是多个acitivity多个

2017-11-03 11:10:45 1016

转载 Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(一)

1,其实早就想把这些东西给封装封装的,一直没有时间,今天刚好项目进入到测试阶段了,Bug同事在哪儿测试的飞起,但发现提bug的尽然是我(得意脸),然后上午把ios的包测试了一下,顺便把服务器给测挂了(别问我是怎么做到的),现在服务器的同事还在拿着刀满街找我呐。好了不扯了,就想标题写了,一直想把这一块揉在一起写写,那就趁这个机会吧。先看看今天我们要实现的效果:2,有些童鞋就很

2017-11-03 11:00:44 558

转载 13幅逻辑图,领略杜克大学的经典思维

No.1、什么是生活生活中我们往往因为缺乏对自我的认知而错过了我们很多原本属于自己的生活,生活总是在不经意间见错过了那些最美好的东西。“Pay close attention. This is your life.”请留意生活中的细节,这是你的生活No.2、明天比今天更重要人们总是过于在意那些重

2017-09-19 14:22:34 527

转载 安卓手机连接蓝牙打印机实现打印功能

最近在做一个安卓应用,其中有一个需求是要求用蓝牙连接打印机实现打印功能。一开始没有一点头绪,网上找了很多资料也找不到有用的数据。所以自己就去研究,最终,功夫不负有心人,顺利的完成了这个功能。下边贴出我写的代码,共有需要的IT哥们参考学习。完整源码下载我们先看看运行效果图吧。。。1.这是主界面的效果图贴上布局文件的代码:bluetooth_la

2017-08-03 11:43:08 4208 3

原创 viewpager 打开界面一直弹出软键盘

1)当在某个页面输入信息时弹出软键盘,使用ViewPager切换页面时,软键盘依旧存在。解决方法:1、定义两个变量             private InputMethodManager manager;             private View currentFocus;          2、在onCreate中初始化manager             m

2017-07-21 13:48:43 531

原创 IT蓝豹,Android炫酷效果源码

http://itlanbao.com/codes.aspx#44,0

2017-07-20 17:04:33 2016

原创 Handler在锁屏状态下进入睡眠状态

我在服务里发了一个请求,在handler中更新ListVIew中的界面会失败,hanldeMessage不会走,但是在静态handler中可以更新UI。如何在锁屏状态乃至系统进入休眠后,仍然保持系统的网络状态以及通过程序唤醒手机呢?答案就是Android中的WakeLock机制。  官方对于WakeLock的解释:    PowerManager:This cl

2017-07-19 16:50:44 4279

原创 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

锁屏状态下按返回键偶尔会引发这个错误,一直未解决,不知道是什么原因java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.

2017-07-17 15:28:24 289

原创 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

http://www.cnblogs.com/yyangblog/p/6249715.html

2017-06-30 16:52:15 201

原创 常用 Git 命令清单

下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新

2017-06-30 11:18:35 124

原创 Android 如何解决dialog弹出时无法捕捉Activity的back事件

当有dialog弹出的时候,系统的返回键失效,在dispatchkeyevent()中 keycode == KECODE_BACK时候,不会进行操作解决办法如下:     1)重写onKeyDown或者onKeyUp方法  2)重写onBackPressed方法  3)重写dispatchKeyEvent方法这三种办法有什么区别在这里不进行阐述,有兴趣的朋

2017-06-22 16:30:21 714

原创 Android 捕获异常上传

在Android应用程序开发中,不可避免的会出现异常,我们应该如何快速的在开发阶段捕获异常进行处理呢?在Java线程类中,可以在线程中捕捉未处理异常,本文我们详细介绍。APP开发出现异常在所难名,甚至会导致应用程序崩溃。如果在debug模式下开发的时候,是可以通过查看logcat日志来查看异常消息,从而进行处理。但是,如果我们在发布版本之后,用户在使用的时候crash掉了,就无法查

2017-06-16 13:20:44 618

原创 在子线程中new Handler报错--Can't create handler inside thread that has not called Looper.prepare()

在子线程中new一个Handler为什么会报以下错误?java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 这是因为Handler对象与其调用者在同一线程中,如果在Handler中设置了延时操作,则调用线程也会堵塞。每个Handl

2017-06-16 12:41:45 254

原创 Android适配方案小结(二)

该节主要记录从代码中获取与屏幕适配相关的各个参数:Java代码如下1234567891011121314151617181920212223242526

2017-06-14 17:33:11 186

转载 Android Handler 消息机制(解惑篇)

概述大家对于Android中的消息处理机制的用法一定都比较熟悉,至于工作原理估计不少人有研究。就像我们自己写的类我们用起来比较熟悉一样,如果我们熟悉了消息处理机制的具体实现,那么我们用起来肯定也会事半功倍。博主之前只是稍有涉猎,对其中一些地方也还心存疑虑,比如既然Looper.loop()里是一个死循环,那它会不会很消耗CPU呢?死循环阻塞了线程,那我们其他的事务是如何被处理的呢?

2017-06-05 17:31:43 281

原创 Android View 的工作原理

一、基础知识1、ViewRoot 和 DecorViewViewRoot 对应 ViewRootImpl 类,它是连接 WindowManager 和 DecorView 的纽带,View 的三大流程都是通过 ViewRoot 来完成的。在ActivityThread 中,当 Activity 对象被创建完毕后,会将 DecorView 添加到 Window 中,同时会创建 Vie

2017-06-05 15:57:26 274

原创 Android App的工作原理

Android App的工作原理Android系统是基于liunx内核的,但是与传统的基于liunx的pc系统不同,用户对Android app没有绝对的掌控权。pc系统中,在应用程序的系统菜单上选择“退出”或者“关闭”之类的选项会直接杀死进程。在Android系统中不是这样的。而是由系统,当系统需要释放内存来运行新进程或者保证某些后台进程和前端进程顺利执行的时候才会释放相应应用程序的

2017-06-05 15:34:01 4456

转载 Android快速理解Activity、View及Window&WindowManager之间关系

基本概念描述:1.Activity用户最直接接触到的,Activity维护应用程序的生命周期,它依赖于Window2.Window表示一个窗口的概念,类似360悬浮窗的东西就需要Window来实现。依赖于WindowManager,同时绘制View(DecorView)3.WindowManager用于添加,移除Window对象,如无法直接访问Window,对Window的

2017-06-05 15:31:34 348

转载 Android--Matrix图片变换处理

前言  本篇博客主要讲解一下如何处理对一个Bitmap对象进行处理,包括:缩放、旋转、位移、倾斜等。在最后将以一个简单的Demo来演示图片特效的变换。   本篇博客的主要内容:MatrixMatrix缩放Matrix旋转Matrix位移Matrix倾斜Matrix变换注意事项Matrix完整的Demo Matrix  对于一个图片变换的处理,需要Matrix类的支持,它

2017-05-19 10:03:36 226

转载 Java的反射详解

反射

2017-05-17 17:05:13 412

原创 从android应用程序跳转到系统的各个设置页面

在android SDK文档中有这样一个类,android.provider.Settings类提供android系统各个页面的跳转常量:使用实例例:startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)),即可跳到android手机网络设置页面。 如果要launch Mobile Networks

2017-05-05 17:36:02 403

原创 git 常用命令大全

创建分支: $ git branch mybranch切换分支: $ git checkout mybranch创建并切换分支: $ git checkout -b mybranch更新master主线上的东西到该分支上:$git rebase master切换到master分支:$git checkout master更新mybranch分支上的东西到master上:$git

2017-04-27 17:01:14 149

空空如也

空空如也

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

TA关注的人

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