自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (15)
  • 收藏
  • 关注

原创 深入理解Java虚拟机:JVM高级特性与最佳实践 读后感

最开始学编程是学的C语言,后来工作了就使用了Mac电脑,发现C语言没法移植,感觉很麻烦,代码都得重写一遍,毕业后开始做安卓开发,接触了java语言,我第一反应就是,会不会我以后换电脑,代码还需要重写一遍,这不很麻烦?在开 的时候发现了java会生成.class文件,开始没觉得怎么样,后来一天用windows开发的同事让我把demo借他看看,发现可以直接在window上运行,这才知道这都是jav...

2019-12-12 13:40:12 391 1

原创 Android 性能优化 - 彻底解决内存抖动

起源内存抖动是由于短时间内有大量对象进出新生区导致的,它伴随着频繁的GC。 gc会大量占用ui线程和cpu资源,会导致app整体卡顿android profile 效果图如下图 Memory 中我们可以看到 上面的一溜白色垃圾桶。说明在大量的执行gc操作。用了一会儿 手机就开始卡了学习内容使用工具来快速定位 引起内存抖动的代码。学习 到什么样的 错误操作会导...

2018-02-11 15:53:20 9743 2

原创 Android 性能优化 - 彻底解决内存泄漏

起源有趣的灵魂千奇百怪,内存泄漏的也是各式各样 我在15年写过一遍 文章 《 android中常见的内存泄漏和解决办法》http://blog.csdn.net/wanghao200906/article/details/50426881,时隔三年居然还有人我问 该如何解决 内存泄漏的问题,因为 有趣的灵魂 千奇百怪,所以 内存泄漏的也是各式各样,所以想避免 内存泄漏 ,不能只记住 常见 问...

2018-02-10 15:42:59 10660 5

原创 android studio 3.0 Ndk 开发- 利用增量更新进行 apk的覆盖安装

学习目的在android studio 3.0的 基础上同时生成多个so包,cmake的编写开发安卓程序进行ndk开发 自动生成 增量包 patch生成 合并的so 库进行patch文件的合并解决 引用三方so库 方法报红 的问题演示增量更新就是,app自动更新的时候不会把整个新版本的apk包下载下来 进行覆盖安装,而是将一个 新版本和老版本 进行比较 生成一个 pat

2018-02-01 15:02:25 948 1

原创 android 使用FileProvider 兼容apk 在7.0版本无法安装

源头都是因为一个bugandroid.os.FileUriExposedException: file:///storage/emulated/0/mwh/app.apk exposed beyond app through Intent.getData()因为这个bug 显示 原来的 apk安装方法无法在高于7.0 的手机系统上安装apk了。所以就得需要使用FileProv

2018-01-31 15:37:45 2849

原创 AndroidStudio3.0 NDK开发- 如何在已有项目中进行NDK开发

源头由于androidstudio 不断地在完善ndk的开发,所以市面上好多文章已经过时了。 本文将从两种方法来讲解如何在androidstudio3.0 上进行ndk的配置。 本文章会学到如下操作:1.从创建项目进行ndk开发 2.在原有项目的基础上进行ndk开发。 3.为什么生成的jni文件 无法关联 4.为什么c++代码没有自动提示 准备工作下载一些ndk需要的工

2018-01-24 18:01:02 11520 3

原创 源码解读,support v4、v7包是如何实现向下兼容的

写在前面上一篇文章 Android 字体国际化适配方法以及源码解析 讲到了如何 适配各国语言长度不同的问题。为了兼容低版本用到了V4 包。用了那么久的v4包,但他是如何做到乡下兼容的呢?这次通过同一个适配的小例子来查看一下 。v4包是如何做到向下兼容的。目的了解v4 v7 是如何实现向下兼容的AppCompatActivity是如何在Activity的基础上实现扩展的看源码为了适配字体,我们

2017-11-21 15:58:42 1436

原创 Android 字体国际化适配方法以及源码解析

起源由于我们公司的app,支持多国语言,所以就导致了 同样的文案,但是长度不同,就会出现适配的问题,因为 中文 是 字表义,外文是 音表义。 今天就用8.0新特新来解决这个问题。适配前是这样的在固定的宽高就会出现适配的问题,在之前博客中也写过解决方案 多语言适配,让text自动改变大小 但现在谷歌已经完全解决了该问题,我们就直接用谷歌的了。适配方法只支持最低版本是26的方法 android

2017-11-17 16:32:48 3101

原创 自己手写百分比控件布局

手写百分比控件布局,我觉得要比用谷歌官方的好一些。虽然我也没看谷歌官方是怎么写的。思路给个百分数,乘以父控件的 宽高,得到的值 赋值给子view。就搞定了抛砖引玉 来张图感受一下 第一个是什么都没做的第二个是用了百分比布局的,并且用了我之前的写字体根据宽高自动缩放的控件 地址:http://blog.csdn.net/wanghao200906/article/details/50802875

2016-06-08 13:50:22 1728 9

原创 向glide致敬,自己写Gif动图加载框架

用Glide很久了。除了对他膜拜就是膜拜,尤其是它可以实现gif的动态加载,那么我们今天就自己来实现以下如何动态的显示Gif。最后要提一句这个思路呢是从动脑学院得知的。他们是一个很牛逼的培训团体。希望广而告之上图片 实现功能1,加载本地gif2,加载网络gif用到技术1,movie类2,canvas类的绘制3,网络下载都是最简单的方法来实现逼格的效果实现原理gif就是一个无声的电影,

2016-05-23 17:30:47 6198 10

原创 RecycleView实现侧滑和拖动

在研究recycleview,发现非常强大,简单的实现个功能 功能需求长按拖动,点击android图标拖动左右滑动删除item功能很简单都是一些api的东西。没有太多讲的。直接上代码好了。先看主函数的类package example.com.recycleviewanimation;import android.os.Bundle;import android.support.v7.app

2016-05-13 13:09:56 2491 3

原创 彻底理解handler的实现原理

说到handler大家都很熟悉,自己也用了很久,再此总结一下。涉及到的内容:LoopMessageMessageQueueThreadLocalHadnler这些东西还是挺多的。那么我们先看一个栗子吧public class MainActivity extends Activity { private static final String TAG = "MainActivi

2016-05-09 18:12:58 13041 10

原创 用dimens去实现 屏幕适配

屏幕适配很简单没想到到现在了还有人在各种问屏幕适配的问题。我真是服了。 15年的时候国内就有很多大神分享了各种屏幕适配的方法。 最近突然被十几个人问。我依然为了应付回答来写博客了。哈哈我们公司就是dimens方法。最low、最简单、最实用。下面是代码直上代码。这个代码运行一下就会出现一堆res文件。然后复制到 工程里面就好了package com.example;import java.io.F

2016-04-12 11:02:40 1182 4

原创 完美解决 手机软键盘遮挡问题

遇到的问题同事的项目在做登陆的时候遇到个问题,就是弹出软键盘把按钮遮挡了。网上好多方法 试了一遍效果都不好。 那么我们该如何解决这个问题呢?解决思路弄个scrollview,让软键盘把scrollview顶上去不弄scrollview。让软键盘把 输入框顶上去,其他的图片用属性动画移走或者不显示。效果图用到的技术监听软键盘 开启和关闭获取控件的高度属性动画 代码实现-监听软键盘 开

2016-04-10 16:15:53 4447 11

原创 让listview在scrollview中自由滑动

总有人我listview嵌套scrollview怎么弄。一问就是半天,太耗时,所以写个博客也算是自己总结一下。目标scrollview嵌套listview,可以自由的定义listview的大小,而不是展示全部listview。让listview在scrollview中自由滑动。当listview滑动到顶端或底端的时候,让scrollview开始滑动直接上图看效果好了: 代码也很简单 直接上

2016-04-07 12:57:14 13758 8

原创 自定义view,viewgroup的onMeasure 方法

自定义view用了好久,用着用着吧感觉也就那么回事儿啊,如果想画个view,那就得知道view的大小。那么首当其中的就是onMeasure()方法啦。 先上一张图,这是我当年自学android的时候看的黑马视频的图。珍藏了快两年啦这张图,第一次看基本看不懂onMeasure有三种 模式EXACTLY:精确 父容器已经知道 这个view的大小AT_MOST:父容器 定了一个最大值,view不

2016-03-16 17:19:37 4161 4

原创 多语言适配,让text自动改变大小

我们公司逼格太好了。目前支持十几种语言,什么 阿拉伯,葡萄牙,希腊,法语巴拉巴拉的 主流语言老板都要适配,那么问题来了,同一个意思 在不同国家的语言长度就不同了。也许你现在没理解,来个图你就知道了 不过我还是得说一下我们之前有多么的苦逼,为了适配好多国家的语言因长度不同导致的bug。几乎一半的文字都写过好多 if( == US){text.setTextSize(10);}else if( =

2016-03-04 15:11:17 7265 6

原创 android studio 碰到问题

as刚安装很卡,跟不上我的手速,直接配置as的vm大小在as的文件包下,bin文件下。 在这改一下就快很多。具体改多大看你心情吧。把eclipse的代码导入到android studio 各种报错前提就是先把sdk buildtools都下载到最新或者相对新先改mainfest里面的 权限不能有重复,里面配置的activity 等如果代码是全部注释了那也得删掉如果图片报错 不是 png

2016-02-16 17:07:09 715 1

原创 android中常见的内存泄漏和解决办法

android中的内存溢出估计大多数人在写代码的时候都出现过,其实突然觉得工作一年和工作三年的区别是什么呢,其实干的工作也许都一样,产品汪看到的结果也都一样,那区别就是速度和质量了。写在前面的一点儿想法:工作做完了其实不会的还有很多,每天都有莫名的危机感,从真正写代码的这一年多总觉得自己的学习速度比别人的慢很多内存溢出是什么鬼?当某些对象不再被程序所使用,但是这些对象仍然被某些对象所引用着,进而导

2015-12-29 15:10:33 14713 15

原创 这酸爽!android studio 2.0的模拟器如何快速Instant Run

android stuido 终于出了2.0版本,是大版本的升级,我现在不知道说什么了,之前一直用eclipse开发,后来用genmotation做模拟器,都是三方的,堂堂安卓,居然要一直用三方的工具,岂有此理啊。那么2.0版的到来一扫依赖三方的阴霾。如何快速启动 项目不卖关子,说结果,就是当你更改代码的时候 运行项目的时候,模拟器上的项目不会重新启动,而是在原有的基础上瞬间改动。是不是很节省时间呢

2015-11-25 09:59:55 4159 4

原创 android的启动模式 到底在什么时候用呢?

安卓的启动模式 估计都学过 但好长时间内不知道怎么用,感觉都忘了启动模式的存在了,一般都是默认的模式, 然后通过Intent跳转 的时候呢 执行以下finish();感觉挺好用,但是也不能完全符合我们的需求。涉及的内容四种启动模式是什么,在哪里用onNewIntent() 是什么一句话理解四种启动模式(网上太多了)standard:每次启动activity都会创建一个activity实例,

2015-11-10 22:30:12 3076 9

原创 android stuido 自定义 代码块

讲解如下内容as自带的自定义代码块在哪?as如何自定义自己的代码块儿?as自带的代码块儿在哪里?在eclipse中 打印sysout会出现 System.out.println();代码 很方便 但是到android studio中就出现各种问题或者是不知道代码是什么。其实很好找 在as中打开setting–>输入Live Templates 然后就找到了 如下界面 可以看到有一

2015-10-22 14:24:27 2343 2

原创 Android stuido 快捷键

常用快捷键 mac抽取方法 alt+command+m自动补全功能 alt+回车surround alt+command+t格式化代码 alt+command+l注释(// 或者/…/ ) command+/ 或 command+Shift+/ 调出当前文件大纲

2015-10-22 13:04:52 659

原创 面向holder的编程,代码更清爽,管理更简单

Listview相信大家都用过了,并且ViewHolder写的次数也不少了。每次使用listview都要写一对viewholder,当然也要写getview。特别麻烦。其实工作量不大,但都是体力活儿。哎还有一个更苦逼的如果你是 项目管理者,小弟特别菜,他写的代码都写在你的activity里面了,当初bug的时候 他果断说不会改,你只能加班自己改。我被坑过无数次,为此很早就想写一个类,让所有代码分工明

2015-07-09 16:52:29 4115 12

原创 高效抽取loading,再多的加载页面也不怕

当今的app基本上有两个操作,一个是加载数据 ,一个就是把数据显示到页面上。但如果页面特别的多。就每个页面都要加载数据,就要写 loading 页面。我之前就是用dialog写,抽取出来一个类。哪里需要了就在那里添加以下代码。我发现我大多数时间都在 重复的 添加 loading代码。为此总加班。 下面是页面多的时候状态 这要再多点儿 一个一个的写不但代码不好看,自己也累得慌下面我们就来说一下

2015-07-08 16:30:06 7456 23

原创 Gson 封装,json从此很简单

以前代码各种 重复,哪里用到解析了 那里就写一遍 gson,各种加班各种苦逼,根本没理解java的精髓啊。自从开窍之后 开始各种总结 封装 。用了gson很久了。下面来共享一下我封装过的 gson吧,如果有用点个赞啊。import java.util.List;import java.util.Map;import com.google.gson.Gson;import com.google.g

2015-05-21 12:02:43 9685 10

原创 从源码角度 解决Volley框架乱码的问题

用Volley框架,解析json 发现了乱码问题。但是服务器的有不愿 意改,只能看源码改了。Volley框架有三个方法 StringRequest; JsonArrayRequest JsonObjectRequest 发下他们分别都是继承了JsonRequest 类 然后呢我们又发现 JsonRequest 类 前面有abstract 是抽象的 惯性思想

2015-05-14 13:47:59 1895 3

原创 android studio慢慢熟悉-好用的 设置 查找框

开始使用android studio了。反正是各种有问题,慢慢来 以前看到ec的黄线就难受,现在as的又是波浪线了。看下面这个 波浪线 Spellchecker inspection helps locate typos and misspelling in your code, comments and literals, and fix them in one click这句话就是 如何解决

2015-05-10 19:45:18 4998 1

原创 深刻的理解Fragment生命周期 都在做什么

Fragment用了很久了,接下来讲一下我自己对fragment的理解。部分图片内容参考官方文档。先上一个生命周期的图片吧 下面挨个的说一下我平时 都怎么使用 这些 回调函数的流程: onAttach() 作用:fragment已经关联到activity, 这个是 回调函数 @Override public void onAttach(Activity

2015-05-07 15:10:28 8596 4

原创 android 引导页 红点 岁页面滑动儿滑动

做了一个简单的 引导页 重点其实 是 引导页下面的点随着页面滑动,上图 请参考:http://blog.csdn.net/wanghao200906/article/details/45536761 就是 三个点 固定 一个点 滑动 算出来 每个点间隔距离 然后通过 公式算出 滑动多少 小红点 移动多少。其实很简单 下面是核心代码

2015-05-06 16:46:10 2324 11

原创 生成随机 简体汉字 繁体汉字

最近在给一个香港学生做毕设,要求生成随机繁体汉字。慕课网视频讲了如何生成简体汉字,其实繁体汉字也很简单。废话不说上代码生成简体汉字/*** 生成随机简体汉字* * @return*/private char getRandomChar() {String str = "";int hightPos;int lowPos;Random ra

2015-04-29 12:52:27 3250

原创 一分钟 搞定你的混淆加密

最近一个项目 发现之前的 混淆加密不好使了。总结了一下既往对大家有用废话少说直接 上步骤。(把大象放冰箱里)1.看下面项目图片应该都有这两个文件吧。反正我是没有config.cfg。网上都说有 。随意了2.配置  project.properties.发现了吧这两个是一样的。直接复制好了。3.配置proguard-project.txt 这是没配置过得

2015-04-28 14:47:52 8193 2

原创 详细解释 hashcode equals() "==" 的区别和联系

最近 被  某某跟某某是否相等 给搞混了。。什么物理地址  哈希值   对象的 引用 巴拉巴拉一大堆 。。先上几个结论  让没有时间的猿类 直接知道答案好了。:结论就是:1 如果两个对象相同,那么它们的hashCode值一定要相同;2、  如果两个对象的hashCode相同,它们并不一定相同    上面说的对象相同指的是用eqauls方法比较。关于(==

2015-02-02 11:10:02 812

原创 详解 instanceof 使用方法

instanceof这个方法 很简单啦。就是判断左边的 是不是 右边 的 子类 。。package Connection;class monkey {}class longarmMonkey extends monkey {}class Engineer extends longarmMonkey {}class engineerSon extends Engi

2015-02-01 23:04:02 4333 1

转载 关于java、Android中Math的一些用法

java.math.Math类常用的常量和方法:Math.PI 记录的圆周率Math.E记录e的常量Math.abs 求绝对值Math.sin 正弦函数 Math.asin 反正弦函数Math.cos 余弦函数 Math.acos 反余弦函数Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数Math.toDeg

2014-12-25 16:50:07 989

原创 listview 使用overscroll 解决 上拉下拉 时候 边界出现阴影 并且自定义图案

以下代码都需要在 2.3以后可以使用。。现在基本都过了2.3了吧。。先看一下 默认的 listview下拉是什么情况  这个是蓝色的 阴影部分。先说怎么去掉他吧。。只用一行代码就可以play_listview.setOverScrollMode(android.view.View.OVER_SCROLL_NEVER);这样的话就可以去掉 阴影了。。下面来个高端一些的。。更换

2014-12-18 13:00:09 8082 4

原创 gson泛型 解决所有数据解析问题

解析 json一直用gson突然出现了这个问题类是这样的 很简单 但每个类都没有关联性 这样写代码太垃圾了。。复用性在哪里。。所以打算用一个通用的方法 ,网上查 自己写 出现啦这三种方法public static List getList(String jsonString, Class cls) { List list = new ArrayList()

2014-12-15 16:10:57 5100

原创 android获取屏幕宽高与获取控件宽高 方法总结

获取屏幕 宽高 和 获取空间的宽高  在开发的时候经常用到,刚开始做开发的时候 总是 复制粘贴 不知道 所以然 ,今天 彻底的 总结一下  获取宽高的 用法先讲一下原理 在最后贴出代码之一直接使用。

2014-12-15 10:13:50 1910

原创 android listview多种布局 getViewTypeCount和getItemViewType

一般listview都是一种样式,但如果出现 多种样式 ,类似于这一条item是 文字 下一条是图片 在下一条是文字加图片,也许你会说 那就在那就在一个xml文件里面写三者样式呗。那如果是 一百个呢。。哇。。这维护起来 可是个大工程,我可不想加班。先上图片看看样子:两种样式     只为了为了说明问题那么方法来了,使用getViewTypeCount和getItemView

2014-12-03 10:43:24 12630

原创 android dialog和activity 改变出现消失的 动画样式

1 dialog 对话框出现和消失  使用的方法 final Dialog dialog = new Dialog(this); dialog.show(); Window window = dialog.getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); window.s

2014-11-24 16:27:14 2807

面向holder的开发

如果你是 项目管理者,小弟特别菜,他写的代码都写在你的activity里面了,当初bug的时候 他果断说不会改,你只能加班自己改。我被坑过无数次,为此很早就想写一个类,让所有代码分工明确不互相干扰,更好的管理

2015-07-09

xloading 高效复写

当今的app基本上有两个操作,一个是加载数据 ,一个就是把数据显示到页面上。但如果页面特别的多。就每个页面都要加载数据,就要写 loading 页面。我之前就是用dialog写,抽取出来一个类。哪里需要了就在那里添加以下代码。我发现我大多数时间都在 重复的 添加 loading代码。为此总加班。

2015-07-08

大众引导页

引导页 下面红点随着引导页的变化而变化

2015-05-06

通用 引导页

引导页 下面红点随着 引导页的变化而变化

2015-05-06

简体字繁体字转换

繁体字和简体字的转换工具jar包。可以直接实现繁体简体的转换 。方便快捷

2015-04-29

fastjson阿里巴巴公司推出的 强大json解析工具

FASTJSON 阿里巴巴推出的 json解析工具

2014-12-15

android listview 的 getViewTypeCount和getItemViewType

android listview 的 getViewTypeCount和getItemViewType详细解释

2014-12-03

android 自定义dialog和activity跳转的样式

android 自定义 dialog和activity 跳转的样式

2014-11-24

actionbar 入门儿 demo

actionbar 自定义 拓展 各种点击事件 actionbar 自定义 拓展 各种点击事件

2014-11-21

ancionbar 例子

ancionbar home标签 标题栏 选项卡

2014-11-20

android 进度条 螺纹渐变

之前在网上做 螺纹的进度条 发现网上没有 做了这个供大家使用 android 进度条 螺纹渐变 有很多不足希望改进后分享出来 告诉我

2014-11-14

zxing 生成二维码名片

zxing 生成二维码名片

2014-06-09

仿微信二维码扫描

仿照微信制作的我二维码扫描。功能强大。

2014-06-04

mars老师android视频的代码

mars老师android视频的代码

2013-08-18

mysql-connector-java-5.1.7-bin

很好用,mysql connector/j mysql-connector-java-5.1.7-bin.jar

2013-08-02

空空如也

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

TA关注的人

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