虚拟机对象的访问定位和内存布局

Java程序需要通过栈上的reference数据来操作堆上的具体对象。 由于reference类型在Java虚拟机规范中之规定了一个指向对象的引用,并没有定义这个引用应该通过何种方式去定位访问队中的对象的具体位置,所以对象的访问方式也是由虚拟机实现而定的。 目前主流方式是使用句柄和直接指针两种。 ...

2019-01-14 15:45:38

阅读数 26

评论数 0

AnimatorSet.setStartDelay在Android4.4上运行问题

先上代码: ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(textView1, "translationY", 0, 200, 0); ObjectAnimator objectA...

2019-01-11 16:16:33

阅读数 107

评论数 0

自定义蜘蛛网状图

运行效果: 绘制分为三步: 1、绘制蜘蛛网格线 2、绘制格中线 3、绘制数据 获取中心点想x,y坐标和半径: @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { radius = Math....

2019-01-10 15:13:14

阅读数 96

评论数 0

Android布局优化

include标签:用来复用布局 比如标题栏等一些多个页面含有同一个布局的情况,可以把公用布局单独写成一个xml,在需要用的时候使用incude标签引用这个布局文件。 例:activity_main_xml <?xml version="1.0&...

2019-01-07 17:23:54

阅读数 19

评论数 0

虚拟机对象的创建

1、对象的创建 流程图: 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有先执行相应的类加载过程。接下来虚拟机为新生对象分配内存。对象所需内存大小在类加载完成后就可以确定,为对象分配的...

2019-01-04 09:27:29

阅读数 30

评论数 0

ANR的产生及日志分析

ANR产生原因: 1、View的按键事件或者触摸事件在特定的时间(5秒)内无法得到响应。 2、BroadcastReceiver的onReceive()方法运行在主线程中,在特定的时间(10秒)内无法完成处理。 3、Service的各个生命周期函数在特定的时间(20秒)内无法完成处理。 定位和分析...

2019-01-03 16:00:59

阅读数 90

评论数 0

Java运行时数据区域

运行时数据区域。 1、程序计数器 是一块较小的内存空间。可看做当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。线程私有。执行Java方...

2019-01-03 15:45:54

阅读数 18

评论数 0

okHttp源码阅读

使用方法 okhttp基本使用方法: // 1、创建OkHttpClient对象 OkHttpClient okHttpClient = new OkHttpClient(); //2、创建Request对象 Request request = new Request.Builder() .u...

2018-08-19 23:28:10

阅读数 112

评论数 0

Volley源码阅读

从Volley的使用步骤来看源码,首先是new一个RequestQueue,来看Volley.java的newRequestQueue方法: 方法重载最终会调用执行这个方法: 在这个方法里首先初始化cacheDir,然后根据API版本是否大于9初始化一个HurlStack对象或...

2018-07-29 23:34:12

阅读数 40

评论数 0

AsyncTask源码阅读

AsyncTask使用 Android中的耗时操作需要放到子线程异步处理,除了使用Thread,Android提供了一个封装好的组件AsyncTask。 使用方法代码如下: public class AsyncTaskActivity extends AppCompatActivit...

2018-07-16 10:38:27

阅读数 223

评论数 0

贝塞尔曲线绘制波浪

效果图: 关于贝塞尔曲线的介绍可以参照文章 https://www.cnblogs.com/wjtaigwh/p/6647114.html 了解完贝塞尔曲线就来完成波浪自定义View 大体思路就是先绘制一条超出屏幕长的二阶贝塞尔曲线,然后再动画循环平移曲线。 package co...

2018-05-27 21:36:28

阅读数 705

评论数 0

Android Paint Xfermode实现镂空相机扫描界面

先上效果图:demo比较简单,背景颜色是黄色,然后在上面覆盖上自定义View。实际需求是在相机的View上盖上一层遮罩,遮罩中心镂空一个透明显示的圆形部分。这个需求一般的布局比较难以实现,如果要ui给一张素材图片又存在不同分辨率手机对图片的拉伸问题,中间的圆会变形,适配不好。所以想要用一个自定义V...

2018-05-27 21:17:34

阅读数 397

评论数 0

Cannot merge new index 66195 into a non-jumbo instruction!问题解决

问题现象: 问题原因: Android系统中,一个Dex文件中存储方法id用的是short类型数据,所以导致你的dex中方法不能超过65536 解决方法:Google 官方给出的解决方案是使用 Multidex 。 解决步骤: 1、修改 build.gradle 文件 defaul...

2018-04-08 15:29:32

阅读数 47

评论数 0

Android Notification 通知

这是Android 通知相关的内容的总结 android中通知用到的地方很多,经常有的例如推送消息,下载时的提示等。 Android 3.0 (API level 11)之前: 使用new Notification()方式创建通知: NotificationManager mNot...

2018-04-01 16:41:50

阅读数 155

评论数 0

仿微信图片选择器

1、概述 图片选择器也是在APP开发中常见的一个功能,检索手机本地的所有图片以GridView的形式显示在界面上,看起来一个简单的功能,但是要想要尽量避免内存溢出,还想要UI操作尽可能的流畅图片加载尽可能的快速,也不是简单的一个setImageBitmap就可以的。 2、运行效果效果...

2017-06-19 23:48:14

阅读数 337

评论数 2

Java中的信号量Semaphore

1、信号量概念 信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个...

2017-06-07 23:53:16

阅读数 234

评论数 0

使用CrashHandler获取crash信息

1、背景和问题在项目开发时,程序crash是再常见不过的情况。crash发生时系统会杀掉正在执行的程序,显示为闪退或者是提示用户程序已经停止运行。而且,用户使用过程中发生的crash,我们开发者 是无法得知原因的,无法知道crash的原因,也就无法解决这个问题。2、解决方法在Android中提供了...

2017-02-08 22:46:19

阅读数 531

评论数 0

Android Volley框架的几种post提交请求方式

From:  http://www.open-open.com/lib/view/open1407727047207.html 先简单描述一下Google的Android开发团队在2013年推出的一个网络通信框架Volley.它的设计目标是进行数据量不大,但通信频繁的网络操作,而对于大数据量...

2016-07-25 21:45:29

阅读数 415

评论数 0

第二章 物理层(笔记)

1、物理层的基本概念物理层解决如何在连接各种计算机的传输媒体上传输数据比特流而不是指具体的传输媒体。 物理层的主要任务描述为:确定与传输媒体的接口的一些特性,即:2、数据通讯的基础知识相关术语: 对基带信号几种调制的方法: 3、物理层下面的传输媒体: ...

2016-07-25 13:40:38

阅读数 152

评论数 0

第一章 计算机网络概述(笔记)

1、计算机网络在信息时代的作用三网: 电信网络(电话) 有线电视网 计算机网络: 因特网 其他网络(军网、政府专用网) 2、计算机网络的重要功能 连通性:彼此连通,交换信息 共享:信息共享,软硬件共享 3、因特网概述网络:许多计算机连在一起 互联网...

2016-07-22 10:04:11

阅读数 213

评论数 0

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