自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 调试之dmtracedump,方法调用分析

使用dmtracedump可以追溯方法的调用。生成函数调用关系图。命令行输入dmtracedump,如果提示command not found。如下图,说明环境变量没有配置。 配置环境变量: dmtracedump执行文件存在Android sdk 的platform-tools文件夹下 export PATH=$PATH:/Users/wuxinglin/Lib/Android/...

2019-06-04 10:25:57 1012 1

转载 class字节码反编译——指令对照表

> 指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 iconst_0 将int型0推送至栈顶 0x04 iconst_1 将int型1推送至栈顶 0x05 iconst_2 将int型2推送至栈顶 0x06 iconst_3 将int型3推送至栈顶 0...

2019-05-01 13:10:26 837

原创 常量池

介绍常量池之前先了解一个命令:javap下面说一下常用指令:javap -s 查看目标类的内部类型签名信息(描述符),包括:字段类型签名,方法的类型签名javap -c 对目标class反编译,可以查看指令的执行过程。javap -v 类的附加信息,可以用来查看常量池,也是我们今天需要用到的命令。现在进入正题—常量池。jvm常量池其实包括两中类型:1.编译时常量池(静态...

2019-05-01 13:04:09 1475

原创 java面试常考点之--类加载

java面试常考点之–类加载字节码中的指令通过javap -c ClassName指令反编译class字节码,查看字节码指令和执行顺序。简单分析指令图中是learn方法的反编译指令和解释,其中#3 #4是符号引用,对应的值(字面量)保存在常量池中。(上篇文章简单分析了常量池,在此不做讨论)字节码指令分类加载存储指令 iload_0 将第一个int变量推到栈顶 fstore_1 ...

2019-05-01 12:38:19 289

原创 ImageView加载图片OOM

开发中给ImageView加载一个高质量图片时,APP抛出了“Canvas: trying to draw too large(840253440bytes) bitmap.”的异常。猜测是图片占用内存太大,超出APP被分配的内存(我用的mate9,APP被分的内存差不多200m),造成了oom。解决方法:1.修改图片分辨率。降低分辨率以减少内存占用,前提是手机展示时不会失真太严重。...

2018-09-07 18:30:41 1089

原创 Vue 注册组件

组件注册方式组件注册分为注册全局组件和局部组件全局组件Vue.component('component_name',{ template:'<div>this is template</div>',})局部组件new Vue({ el:'#root',//root为挂载的元素 components:{ component_name:{...

2018-05-14 16:57:14 845

原创 Vue 入门

Vue使用Vue Api入口Vue的实例作为入口var vm = new Vue({ el:'#rootId' })vm是Vue的实例属性el(element)为Vue实例挂在的元素,其值可以为元素id,或者元素对象。data: Vue实例的数据对象,当数据对象被data绑定,其中的属性就会拥有get和set属性,用来监听数据变化,实时响应。Vue实例可以通过$data属性访问原始数据...

2018-05-14 15:46:13 290

原创 ajax初探

Ajax可以动态,异步的更新网页内容,不需要通过表单提交数据后跳转新页面实现更新(无刷新式更新),使页面更友好,性能更高。优点:支持异步请求。Ajax的核心是JavaScript的XmlHttpRequest对象,通过XmlHttpRequest对象向服务器发送异步请求。XmlHttpRequest对象的方法和属性:onreadystatechange:每次状态改变时触发sta

2017-08-01 10:36:37 361

原创 使用HttpURLConnection通过post请求服务器时,URLEncode编码的必要性

通过Post提交表单数据时,数据类型为x-www-urlencoded,提交到服务器的数据服务器默认是通过URLEncoder.encode()编码过得,所以服务器处理时会用URLDecoder.decode(s)进行解码,此时传输的数据就不能包括一些特殊字符。如+、%2b原因:通过URLEncoder.encode()空格会被编码成+号,+号会被编码成%2B,所以如果包括+,%2B的元数据,

2017-08-01 10:33:10 3819

原创 Android 通过post上传文件--HttpURLConnection实现

最近在做向服务器提交文件,本来用的xutils,使用起来挺简单,代买超不过10行,但是想深入了解一下原理,所以就自己用HttpURLConnection实现文件的上传。无论是浏览器通过表单提交文件,还是APP通过post提交,其实原理都是一样的。APP只要仿照浏览器的表单提交数据的样式去提交文件,服务器就可以解析并处理文件。那就首先来看一下浏览器提交的数据样式和请求头的信息。HTML核

2017-07-31 17:34:43 2590

原创 Failed to crunch file

今天在导入一个演示demo时,Android studio报了如下错误:Error:Error: File path too long on Windows, keep below 240 characters : C:\Users\Administrator.PC-20....Error:Failed to crunch file C:\Users\Administrator

2017-05-24 14:26:55 836

转载 从Instant run谈Android替换Application和动态加载机制

转自http://www.tuicool.com/articles/ZFbaaubAndroid studio 2.0 Stable 版本中集成了 Install run 即时编译技术,官方描述可以大幅加速编译速度,我们团队在第一时间更新并使用,总体用下来感觉,恩…也就那样吧,还不如不用的快。所以就去看了下 Install run 的实现方式,其中有一个整体框架的基础,也就是今天的文章

2016-12-03 21:14:28 1908

原创 webview播放网络视频

根据开发需求,需要在app中加载网络上的视频。本来是挺简单的一件事,webview.loadUrl(视频地址),但是在处理全屏的时候总是失败。下面用代码说话://全屏显示的视图对象 private View mFullVideoView; //一个通知webview退出全屏的回调接口 private WebChromeClient.CustomViewCallbac

2016-10-27 10:33:52 826

原创 Androidstudio不能连接手机测试,adb不能启动

今天启动Android studio 运行程序,不能找到模拟器,连接上真机进行调试,还是找不到。然后重启AS发现提示才知道是ADB的端口5037被其他应用占用,导致其不能启动。通过命令行检查是什么应用占用了5037这个端口。win+R运行cmd启动命令提示符窗口,输入命令netstat -ano |findstr"5037",发现占用端口的进程。通过命令tasklist

2016-10-24 15:08:09 1953

转载 gradle入门

转载Android开发中文站 » gradle入门随着Android Studio越来越完善,更多的开发者舍弃掉Eclipse。但是新的IDE与以往的Eclipse有很大区别,这导致部分开发者望而却步,其中一个大家觉得比较麻烦的是Android Studio采用的新的构建系统,gradle。那么这篇文章我将对gradle进行一个简单介绍(主要讲gradle配合Android Studi

2016-10-23 03:02:26 405

原创 setOnScrollChangeListener不兼容

开发中为scrollview设置监听,setOnScrollChangeListener报找不到类的错误,原来是这个方法是API23才出来的,没有做向下兼容,所以在低版本运行就会报错。解决这个问题有两个方法:1.     解决方案是使用ViewTreeObserverscrollView.getViewTreeObserver().addOnScrollChangedL

2016-10-18 18:24:50 8902

空空如也

空空如也

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

TA关注的人

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