自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android Studio 4.0 offline mode离线模式

老版本在设置界面里,新版本升级到Gradle中,一个小按钮,记录一下

2020-09-04 17:16:20 4555 5

原创 android string文件 报错 ***is translated here but not found in default locale

原因:在默认的strings.xml里没有这个字段;解决办法:将Value/string.xml中的<resources>改成<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ExtraTranslation">

2020-07-10 10:16:52 1774

原创 Android使用okHttp实现WebSocket源码分析

项目中需要实现一个类似心跳包的内容,语音通话期间,需要不断的请求服务器发送数据,确保正在连接中,开始想到的是使用service开启子线程,定时请求接口发送数据,但数据量很大时,http请求头部太大,每次请求需要发送重复的头数据,非常消耗流量,于是考虑使用长连接的方式。Android中实现WebSocket有很多种方式,这里说一下okHttp的方式。先来大致了解一下websocket。WebSocket属于双向通信协议,Http是单向的 webSocket是需要握手进行建立连接的,只是在建立握手时,数据

2020-07-07 10:07:42 1094

原创 Google支付从创建商品到支付成功踩过的坑

错误1:此版本的应用未配置为通过GooglePlay结算。有关详情,请访问帮助中心。app内错误截图出现问题原因是打包的时候,versionCode的值比提交到google play后台的版本要高。 打包的时候,和google play后台上的包的签名不一致,APK与发布证书一起签署。(重要提示:使用“Google Play应用程序签名”时,只有直接从Google PlayStore下载才有效! 登录测试机已登录谷歌账号,并已添加到谷歌测试账号中,添加地址https://play.g..

2020-07-06 22:01:43 11997 12

原创 RecycleView添加header和footer

最近开发,有个需求,网格布局的地步,需要添加底部footer,展示隐私权政策,本以为像listview一样很容易的add就好了,结果recycleview并没有这样的功能。项目中基本的recycleview并不能满足刷新和加载更多的操作,所以一直使用的是xrecycleview。奈何xrecycleview中只有addHead方法,项目中所需要的addfooter,并没有实现。所以仿照xrecycleview中的addhead方法,创建一个包裹器,添加addfooter方法。代码如下/** * De

2020-06-28 22:32:04 413

原创 AndroidManifast警告App is not indexable by Google Search

新建项目中,Manifast会出现一个警告,可能有点一头雾水,好,先来说一下警告的意思App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter. See issue explanation for more details. les...

2019-07-26 11:36:00 199

原创 RxJava的使用注意事项

之前就有阅读过RxJava,但未实现到项目中。最近项目升级,开始使用RxJava,又重新整理了几点需要注意的问题,希望能帮助到遇到问题的朋友onCompleted()和onError()二者也是互斥的,即在队列中调用了其中一个,就不会再调用另一个。应用到程序开发中,之前使用XUtils时,习惯将结束刷新或者隐藏加载框等操作放到onFinished()方法中,使用RxJava则需注意,成功...

2019-06-28 16:15:03 212

原创 使用AndroidStudio网络抓包

抓包的方式有很多种,Filder需要添加手机代理,还有抓包神奇Charles,不过他需要一些繁琐的配置。今天主要说一下使用AndroidStudio进行网络抓包。主要使用到的工具是Profile,首先说一下打开步骤:设置完成以后,界面主要分成几个模块在这里,我们主要使用的是NETWORK模块,可以看到网络请求发生时,会有网络曲线波动,点击刚才的NETWORK模块...

2019-05-14 17:21:20 11201 6

原创 Android手动显示软键盘以及软键盘设置发送按钮的注意事项

最近更改项目中的输入框样式,涉及到软键盘的显示和隐藏问题,总结了几点注意事项,希望能帮到遇到同样问题的小伙伴。博文中除了显示软键盘的注意问题以外,还有一个发送按钮是否需要显示在软键盘上的问题一、先说一下显示软键盘我们的布局显示样式除了点击EditText,展示软键盘以外,点击两个按钮,也需展示软键盘Adroid中显示软键盘常用的方法是public boolea...

2019-05-10 16:24:34 3951

原创 android权限(permission)大全

Android的权限在AndroidManifest.xml文件里配置。AndroidManifest文件中有四个标签与permission有关,他们分别是<permission><permission-group><permission-tree><uses-permission>。其中最常用的是<uses-permisson>...

2019-03-29 14:08:17 1456

原创 什么是Activity、View、Window?

第一问:什么是Activity、View、Window?Activity 是四大组件之一,也是我们的界面载体,可以展示页面;而View实际上就是一个一个的视图,这些试图可以搭载在一个Layout文件上,通过Activity的setContentView()方法传递给Activity;Window是一个窗体,每个Activity对应一个Window,但是每个Window并不是对应的只是Activ...

2018-10-25 17:25:56 589

原创 面试-Java玩转选择排序和插入排序

上一篇文章介绍了Java玩转冒泡排序,大家一定觉得并没有什么难度吧,不知道大佬们玩转了吗?不知道大家有没有多思考,实际上在我们最后的一种思路上,还可以再继续改进。我们先看看昨天最终版本的代码。package com.lixm.animationdemo.other;/** * Describe: * &lt;p&gt; * Author: Lixm * Date: 2018/...

2018-10-11 15:48:16 158

原创 面试:用Java玩转冒泡排序

虽然在我们Android开发中,很少涉及到排序算法,因为基本官方都帮我们封装好了,但排序算法也是非常重要的,在面试中归并排序和快速排序一直未高频考点,但在学习他们之前,我们必须得把三大基础算法学会,必经层层递进,方得始终嘛。冒泡排序冒泡排序恐怕是我们计算机课程上第一个接触到的排序算法,也算是一种入门级的排序算法。它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序...

2018-09-19 17:27:52 169

原创 面试-面试常见的链表算法捷径(二)

上一篇在最后给大家留了拓展题,不知道大家有没有思考完成,其实之前说有巨坑是吓大家了,实际上也没什么,好了,我们继续来看上一篇中的拓展题。面试题:给定单链表的头结点,删除单链表的倒数第k个结点。这个题和前面的文章中增加了一个操作,除了找出来这个结点,我们还要删除它。删除一个结点,想必大家必定也知道:要想操作(添加、删除)单链表的某个结点,那我们还得知道这个节点的前一个结点。所以我们要删除倒数...

2018-09-18 17:18:14 150

原创 面试:面试常见的链表类算法捷径(一)

链表是我们数据结构面试中比较容易出错的问题,所以很多面试官总喜欢在这个上面下功夫,为了避免出错,我们最好先进行全面分析。在实际软件开发周期中,设计的时间通常不会比编码时间短,在面试的时候我们不要着急于写代码,而是一开始仔细分析和设计,这将给面试官留下一个很好的印象。与其很快写出一段千疮百孔的代码,不如仔细分析后再写出健壮性无敌的程序。面试题:输入一个单链表的头结点,返回它的中间元素。为了方...

2018-09-18 11:42:38 166

原创 Android中自定义CommonShapeButton替换Shape标签

在原有的基础上,新增了java版本,目前支持kotlin和java两个版本,git地址:文章链接又更新了,新增文字大小自适应方法,xml文件中可控在Android开发中,使用Shape标签可以很方便的帮我们构建资源文件,跟传统的png图片相比:shape标签可以帮助我们有效减小apk安装包大小。 在不同手机的适配上面,shape标签也表现得更加优秀。关于shape标签如何使用,在网...

2018-09-07 17:49:54 728

原创 面试:扩展性好的代码,更容易获得Offer

面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分,希望时间复杂度尽量小。看到这道题,相比大多数人都是能一下就想到从头到尾扫描一遍数组,然后遇到奇数就移动到最前边,遇到偶数就移动到最后边的思路。于是便有了下面的代码。注:《剑指Offer》上面的【遇到奇数移动到最前面,遇到偶数移动到最后边】其实只需要做其中一种即可。...

2018-09-05 18:24:00 100

原创 面试题:你能手写java的pow()方法么?

我们在处理一道编程面试题的时候,通常除了注意代码规范以外,千万要记得自己心中模拟一个单元测试。主要通过三方面来处理。功能性测试 边界值测试 负面性测试不管如何,一定要保证自己的代码考虑的全面,而不要简单的猜想用户的输入一定是正确的,只是去实现功能。通常你编写一个能接受住考验的代码,会让面试官对你刮目相看,你可以不厉害,但已经充分说明了你的靠谱。今天我们的面试题目是:尝试实现Jav...

2018-09-05 15:45:30 550

原创 用Java逆序打印链表

Java实现的单例模式中,经常使用双重校验锁机制,因为指令重排序问题而引入了voataile关键字,这里有个疑问,到底为啥要加volatile这个关键字呀,而它,到底又有什么神奇的作用呢?对volatile这个关键字,之前只是简单的理解过:被volatile修饰的共享变量,都会具有下面两个属性:保证线程对该变量操作的内存可见性 禁止指令重排序共享变量:如果一个变量在多个线程的工作内存中...

2018-09-04 17:19:46 542

原创 接口与抽象类的应用(包括各自设计模式)

一、目标1)掌握抽象类和接口的实例化操作。2)掌握模板设计的作用。3)掌握工厂设计模式的作用。4)掌握代理设计模式的作用。5)掌握适配器模式的作用。6)掌握抽象类和接口的使用区别。二、具体内容2.1 为抽象类和接口实例化在java中,可以通过对象的多态性,为抽象类和接口实例化,这样在使用抽象类和接口的时候,就可以调用本子类中所覆写过的方法。之所以抽象类和接口不能...

2018-09-03 17:55:08 181

原创 Android进程间的通信

本文参考:https://www.cnblogs.com/lizhengxian/p/5075635.html 定义多进程Android应用中使用多进程只有一个办法(除去用NDK的fork实现外),就是在AndroidManifest.xm中声明组件时,用android:process属性来指定不单独定义process属性,则默认运行在主进程中,属于全局进程,其他具有相同的shareUID与签名的...

2018-06-27 16:35:27 144

原创 Java中的强软弱虚

    从JDK1.2版本开始,把对象引用分别四中级别,从而使程序能更加灵活的控制对象的生命周期,四中级别由高到低依次为:强引用、软引用、弱引用和虚引用。1、强引用:    比如 Object object=new Object(); new 创建出来的object 对象就是强引用。当内存空间不足时,Java虚拟机宁愿抛出OutOfMemoryError错误,是程序异常终止,也不会靠随意回收具有强...

2018-06-27 14:10:47 1016

原创 Bugly热更新集成,以及遇到的问题

这两天有在研究Bugly的热更新,集成后发现确实很方便,参考网址为:Bugly官网一、添加插件依赖工程根目录下“build.gradle”文件中添加// tinkersupport插件,其中lastest.release指拉取最新版本,也可以指定明确版本号,例如1.0.4classpath"com.tencent.bugly:tinker-support:1.0.8"二

2017-11-02 15:20:28 1817

转载 Android开发中的tools命名空间的引用

在Android布局文件中,经常看到 xmlns:tools=”http://schemas.android.com/tools“,一直不知道有什么用,直到看到这篇博客,看到了tools的强大功能,不仅可以节省开发时间,还可以辅助页面布局在布局文件中使用tools命名空间Android Studio 布局文件中导入tools命名空间输入toolsNs,点击TAB

2017-09-29 11:20:55 268

原创 如何通过JCenter 和 Mavenue Central 从 Android Studio 分发自己的Library库

在Adnroid Studio中,如果你想在你自己的项目中引用其他任何的第三方库。只需要在项目的build.gradle中添加如下简单的一行代码。 就这样,这个library库还不能被使用。  这个看起来很酷,但是你可能好奇,这个库Android Studio 是从哪里查询来的呢?这篇博客将会详细介绍整个工作流程,包括怎样发布你自己的库,并分享给世界其他地方的开发者。这不仅使世界变得美

2017-09-13 10:59:35 372

原创 DexClassLoader和PathClassLoader的区别

在使用Java虚拟机时,我们经常自定义继承自ClassLoader的类加载器。然后通过defineClass方法来从一个二进制流中加载Class。而在Android中我们无法这么使用,android中ClassLoader的defineClass方法具体是调用VMClassLoader的defineClass本地静态方法。而这个本地方法什么都没做,只是抛出了一个“UnsupportedOperat

2017-07-11 17:36:17 469

转载 HTTP1.0 HTTP 1.1 HTTP 2.0主要区别

HTTP1.0 HTTP 1.1主要区别长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。节约

2017-07-11 17:21:26 290

原创 ListView关于Item高度的诡异问题

今天本想写一个简单的RecyclerView的demo,数据和逻辑都处理好之后,发现一个诡异的问题,item的高度都是固定,无论里面是有图片还是无图片如此糟糕的界面布局,其实代码很简单<LinearLayout android:id="@+id/friend_right_root" xmlns:android="http://schemas.android.com/a

2016-04-19 16:43:26 268

原创 TextView的ClickSpan

我们都知道WebView可以实现点击链接查看详情的功能,无论是APP内显示还是浏览器外显示,都很自如。但是WebView带来的高内存,网络请求耗时也是不可避免的。现在我们要仿照WebView的这一功能,给TextView添加链接跳转。  比如有这样一个需求,在”第一个界面是正常内容的,第一个界面中只有一个TextView,第一个界面中的TextView通过点击跳转,跳转到第二个界面。“这个内容

2016-04-11 16:29:37 427

原创 TextView的ClickSpan

我们都知道WebView可以实现点击链接查看详情的功能,无论是APP内显示还是浏览器外显示,都很自如。但是WebView带来的高内存,网络请求耗时也是不可避免的。现在我们要仿照WebView的这一功能,给TextView添加链接跳转。  比如有这样一个需求,在”第一个界面是正常内容的,第一个界面中只有一个TextView,第一个界面中的TextView通过点击跳转,跳转到第二个界面。“这个内容

2016-04-11 16:28:58 1065

原创 设置WebView字体颜色,背景颜色

上次总结了一下WebView更改字体大小的帖子,这次在加点料,索性把webView的字体颜色和背景颜色都设置一下。   现在的App大多数支持日夜间模式的切换,对于新闻阅读类的App,更改WebView的日夜间模式,显得尤为重要。更改字体颜色,主要的思想是在WebView加载的Data的外面,加载了一个模板,然后根据用户日夜间模式切换的点击事件,更改WebView的字体颜色。其实这里例子懂了之后,

2016-04-11 14:29:18 5490

原创 更改WebView的字体大小

上次总结了一下WebView更改字体大小的帖子,这次在加点料,索性把webView的字体颜色和背景颜色都设置一下。   现在的App大多数支持日夜间模式的切换,对于新闻阅读类的App,更改WebView的日夜间模式,显得尤为重要。更改字体颜色,主要的思想是在WebView加载的Data的外面,加载了一个模板,然后根据用户日夜间模式切换的点击事件,更改WebView的字体颜色。其实这里例子懂了之后,

2016-04-11 14:22:44 900 1

原创 时间处理工具

// 获取系统当前日期时间public static String mGetDateTime() {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date = format.format(new Date());return date;}// 获取系统当前日期

2015-06-26 11:53:05 224

原创 Image图片处理总结

忙了半年终于闲下来了一会,整理了一下图片处理过程中遇到的问题/*** 根据输入指定的圆角,获取Bitmap资源* * @param bitmap* @param roundPX* @return*/public static Bitmap getRoundCornerBitmap(Bitmap bitmap, float roundPX) {try {Bit

2015-06-26 11:43:36 610

空空如也

空空如也

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

TA关注的人

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