- 博客(25)
- 问答 (1)
- 收藏
- 关注
原创 一步一步教你学会自定义View并了解其绘制原理(一)
自定义view的绘制过程,看了很多关于自定义view的帖子、博客,写的也都不错,但我想通过图片+代码+注释的方式写一篇因为图片带给人的记忆效果远比长篇大论的文字好的多,再加上代码的辅助说明,那就更容易的掌握了,废话不多说,撸起袖子,开干!自定义view的种类继承自View(重写onMeasure、onLayout、onDraw方法)继承自ViewGroup派生特殊的Layout集成特定的Vie
2017-02-24 14:01:55 2105
原创 Android的消息机制分析
上一篇博客对handler的消息机制做了一个概括性的描述,最后一张图也能够比较好的理解handler的工作过程,这篇博客将对Android消息机制的实现做一个全面的分析。由于Android的消息机制实际上就是handler的运行机制,因此这篇博客主要围绕着handler的工作过程来分析Android的消息机制,主要包括handler、MessageQueue和Looper。同时为了更好的理解Loop
2017-02-21 17:15:02 512
原创 Android的消息机制概述
Handler产生的原因 Android的消息机制主要指Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作过程,这三者实际上是一个整体,只不过我们在开发过程中接触最多的是Handler而已。Handler的主要作用是将一个任务切换到某个制定的线程中去执行,那么Android为什么要提供这个功能呢?因为Android规定访问UI只能在主线程中进行,如果在
2017-02-21 17:05:59 416
原创 2021-06-08
JVM gcRoots对象1、虚拟机栈中引用的对象2、方法区中类静态属性引用的对象3、方法区中常量引用的对象4、本地方法栈中JNI引用的对象1、虚拟机栈中引用的对象2、方法区中类静态属性引用的对象3、方法区中常量引用的对象4、本地方法栈中JNI引用的对象...
2021-06-08 18:15:09 126
原创 unable to load class 'org.*****'的问题
问题上周五把androidStudio从2.3更新到了3.0,原来的项目重新打开后报异常,如图所示 原因studio更新完后会有一个更新gradle的弹窗,当时我也没多想直接点击了update,更新后项目中的两个文件发生了变化 1、根目录下的gradle/wrapper/gradle-wrapper.properties文件下的distributionUrl自动更新为 dis...
2018-03-19 10:39:24 3317
原创 java算法--选择排序法
选择排序法前言 昨天晚上匆匆忙忙的写完了冒泡排序法,在简书里没找到markdown编辑器,所以只能手敲了,今天在scdn上借用这个强大的编辑器,文章照常在简书上发表,话不多说,今天写的是选择排序法。选择排序法原理 选择数组中的任意一个元素A,依次跟其他的元素X比较,若A>X,则交换,否则不交换。事例 例子:待排序的数组为{ 5,2,9,8,1} 选择第一个元素5,跟2比较,2小于5
2018-03-14 17:11:53 1044
原创 IView中on-change属性的使用
本人android开发出身,因工作需要,后台前端的代码也都有涉猎,这两天一直被input标签中的onchange困扰的头昏脑胀,辗转难眠,
2017-08-28 16:54:10 47371 3
原创 动态修改js中文字的title
代码块<input type="checkbox" style="margin-left:10px;" name="keysTest" value=1 id="keyOne" title=""> 按键1</input> <input type="checkbox" style="margin-left:10px;" name="keysTest"
2017-08-10 18:28:25 2842
原创 vue使用过程中遇到的错误提示一
vue错误提示:template syntax error Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.
2017-07-05 15:05:55 33035 1
原创 npm install 时报 phantomjs-prebuilt@2.1.14 安装失败解决方案
错误如下图所示:对应文字信息:phantomjs-prebuilt@2.1.14 install: `node install.js`Exit status 1Failed at the phantomjs-prebuilt@2.1.14 install script 'node install.js'.Make sure you have the latest
2017-06-14 16:32:30 12580 2
转载 使用Studio在genymotion模拟器上运行项目时提示错误:installation failed with message INSTALL_FAILED_CPU_ABI_INCOMPATIBL
引用雷锋的博客地址:错误解决方式
2017-04-20 11:08:13 1800
转载 Android Studio下项目编译出错could not find com.android.tools.buildgradle:2.2.2
今天更新Android Studio后打开Project,报如下错误:Error:Could not find com.android.tools.build:gradle:2.2.2.Searched in the following locations: file:/D:/Program Files/Android/android-studio/gradle/m2reposi
2017-04-13 10:41:19 34773 1
原创 教你学会使用WebView与JS交互
前言现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。目录文章目录1. 简介WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.
2017-03-21 15:53:28 3913
原创 时间格式转换大全(Data2long,long2Data,String2Data)
1、Data类转化为长整型(long)/** * data类型转化为long类型 * @param date 为java.util.Data * @return 长整型数据 */ public static long data2Long(Date date){ System.out.println(date.toString());
2017-03-09 15:32:36 1474
原创 浅谈多线程之锁的机制
Java中锁的机制synchronized–Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。当两个并发线程访问同一个对象Object中的这个synchronized同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块后才能执行该代码块。然而,当一个线程访问Object的一个synchronize
2017-02-08 17:40:50 1700
原创 Android Studio运行出现Unknown run configuration type AndroidRunConfigurationType解决方案
Android Studio运行出现Unknown run configuration type AndroidRunConfigurationType解决方案出现原因导入项目时长时间停留在下面这个图片,你不耐烦的时候就会关掉studio,然后你再次打开时,会发现右上角会提示“部分plugins丢失” 2.此时运行打开的项目便会出现该错误提示解决方式1、打开File/setting/plu
2017-01-11 11:01:33 3957
转载 Handler原理剖析
最近在写一篇内存泄漏的博客,还在完善中,其中写到handler引起的内存泄漏,发现对Handler了解太过狭隘,于是百度搜索大神对Handler的剖析,打算站在他们的肩膀上领略一下Handler相关的源码。废话不多说,赶紧上代码。参考链接:https://halfstackdeveloper.github.io/2016/08/31/Android-Handler-%E5%8E%9F%E7%9
2016-12-13 15:34:22 381
原创 给空白apk签名问题
之前接到这样一个需求,上架搜狗应用市场需要给他们平台提供的一个apk文件,将其用我们的keystore 进行签名,当然其他平台都可以适用。http://zhushou.sogou.com/open/news-9.html我在网上查了下,其实很简单,jdk已经跟我们提供好工具了,具体命令如下jarsigner -verbose -keystore [keystorePath] -sign
2016-08-02 17:21:55 993
原创 Studio中的项目接入百度地图sdk后,地图不能正常显示及出现 errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败 问题的解决方法
用Android Studio环境写了一个百度地图的Demo,但是一直报Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败,百度到的解决方法都无法解决我的问题,我按照官网的方式获取的SHA1签名,也确定包名没有问题,也尝试手动生成签名以及删除应用再重新建。经过几个小时都无结果,我突然想到,230既然表
2016-07-28 11:48:30 1601
原创 关于部分手机app安装失败或安装未成功的原因
开发过程中经常遇到有些手机(三星、moto等)不能安装自己开发的apk,主要原因是:Moto、三星国行基本都阉割了Google APIs,(魅族和小米却没有)。解决方法大致有两个方向:原因就是在Androidmainfirst文件中添加了:方向一重新刷机,但软件是你写的,手机却在别人手里,所以你不能要求别人为了安装你这个软件再去安装google服务方向二
2016-07-27 15:18:50 26578
转载 Java中break、continue与return的区别
1. breakbreak语句的使用场合主要是switch语句和循环结构。在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句。如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。如果循环结构里有switch语句,并且在switch语句中使用了break语句,当执行swi
2016-07-27 14:33:02 9635
原创 Eclipse中的项目导入到Studio中,保留原签名
Eclipse用了两年多,真心舍不得换成Studio,但考虑到快速开发,只能忍痛割爱了,下面说下遇到的问题。1、apk签名问题 公司之前的项目是Eclipse开发的,签名也是在Eclipse中进行的,但要注意的是签名的时候会生成一个***.keyStroe文件;记住该文件的位置,下面将用到。 然后将Eclipse中的项目导入到Studio中,这个网上介绍的很多,这里
2016-07-14 11:04:15 383
原创 常用的图片处理框架UIL、Picasso、Glide、Fresco、Volley ImageLoader比较分析
下面我来谈一下个人对这些图片加载库的理解,如有错误,还望指教。Universal Image Loader:一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛。Picasso: Square出品,必属精品。和OkHttp搭配起来更配呦!Volley ImageLoader:Google官方出品,可惜不能加载本地图片~Fresco:Facebook出的,天
2016-06-28 13:26:42 678
原创 每周一篇之EditText的简单使用
EditText--可编辑文本控件,常用于登录、注册、搜索等编辑文本的输入,现在共同学习一下。线上代码 <EditText android:id="@+id/edit" android:layout_width="wrap_content" android:layout_height="wrap_content"
2016-06-20 14:35:40 302
原创 在csdn上混了两年多,从来没做过贡献,从现在开始,每周一篇原创
距今未知,我已从事Android两年有余,csdn也伴随了我两年多,学到了不少东西,也认识了很多大牛,直到今天面试了一个同行,他说他每过一段时间都会写一篇原创,这点点醒了我,之前我是只知道在csdn上无情的获取,现在想想有点过分啊,从今天开始,开始写博客,写的不好的地方请大家多多指点,
2016-06-13 11:11:47 372
空空如也
适配器notifyDataSetChange()的使用技巧?
2016-01-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人