自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android进程间通信 - 几种方式的对比总结

什么是RPCRPC(Remote Procedure Call)即远程过程调用,它是一种通过网络从远程计算机程序上请求服务,在不需要了解底层网络技术的协议下,即可获取计算机进程中的数据。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC在OSI网络通信7层模型中,位于传输层与应用层之间,即位于会话层: RPC实现模式,就是我们常说的C/S结构,引用百度百科的定义:...

2018-07-29 21:12:45 22079 1

原创 Android进程间通信 - Socket使用(TCP、UDP)

在使用Socket实现进程间通信前,先对网络协议相关知识进行简单回顾。网络分层一般情况会将网络分为5层:应用层     常见协议:HTTP、FTP、POP3等传输层     常见协议:TCP、UDP网络层 &amp

2018-07-28 19:38:30 4702

原创 Android进程间通信 - ContentProvider内容提供者

简介ContentProvider主要用于在不同的应用程序间实现数据共享的功能,允许一个程序访问另外一个程序中的数据,还能保证数据访问的安全性。 是Android跨进程实现数据共享的标准方式。ContentProvider相当于进程间的搬运工,对数据一系列的操作(CRUD)数据源可以是数据库(SQLite等)、文件、xml、网络等等。统一资源标识符(URI)UR...

2018-07-22 20:37:48 2788

原创 Android进程间通信 - Messenger的使用和理解

Messenger简介Messenger是基于Message对象进行跨进程通信的,类似于Handler发送消息实现线程间通信一样的用法。Messenger使用下面写个客户端跨进程发送消息到服务端,服务端接受到立即回复的例子。服务端实现流程首先创建一个Handler对象接着创建一个Messenger对象,并把Handler对象以形参传入Messenger中最后通...

2018-07-18 02:16:47 6125 2

原创 Android进程通信 - AIDL的使用方法

AIDL简介AIDL是Android接口定义语言,有点类似于我们开发中的普通接口。由于不同进程间不能共享内存,为了解决进程间通信的问题,可以通过AIDL接口语言来实现进程间的通信。AIDL文件支持的数据类型基本数据类型(int、long、char、boolean、double)String和CharSequenceList和Map集合 集合内元素必须是AIDL支持的数据类型服...

2018-07-15 02:17:20 2685 2

原创 Android进程通信 - 序列化Serialzable与Parcelable

序列化简介定义序列化是将对象的状态信息转换为存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从储存区中读取或反序列化对象的状态,重新创建该对象。 简单而言: 序列化是将对象转换成字节流 反序列化是将字节流转化成对象。用途主要用途:序列化将对象写成字节流持久化保存在内存、文件、数据库中将序列化对象通过网络...

2018-07-11 01:24:59 2005

转载 深入理解js立即执行函数

看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。 1.什么是立即执行函数(IIFE) 在了解立即执行函数之前先明确一下函数声明、函数表达式及匿名函数的形式,如下图: 接下来看立即执行函数的两种常见形式:( functio...

2021-10-09 13:44:31 3

转载 五分钟读懂UML类图

平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属性或方法的可见性,UML类图中表示可见性的符号有三种.

2021-09-11 23:45:01 13

转载 设计模式中类的关系

     在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。 1. 依赖(Dependence)         依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另...

2021-09-09 16:46:12 9

原创 WebView独立进程方案-基于腾讯X5的二次封装

文章目录前言概述基本使用架构流程命令模式预初始化参考前言概述几乎所有的App都会用到WebView组件,用WebView承载业务功能也是一种选择,毕竟不用等待应用市场的审核,提升业务上线与bug修复的及时性,但WebView加载业务功能,也有很大的缺陷,体验不好(主要体现在加载、交互上)、耗内存;针对耗内存的问题这里提供跨进程的设计方案,让WebView在单独的一个进程中运行,这样做的好处是分担主进程的内存压力,另外WebView进程发生崩溃了,也不会影响到主进程的正常运行。WebView跨进程通信是

2021-08-08 19:53:34 60

转载 javac “错误:编码GBK 的不可映射字符”

推荐推荐使用第一种方法,在javac命令中设置编码格式utf-8第二种方法将文件转成ANSI编码,中文注释会乱码转载与参考自:解决 java “错误:编码GBK 的不可映射字android studio 中的编码问题问题与解决过程 public class HelloWorldwww{ public static void main(String args[]){

2021-04-05 09:09:30 62

原创 Git - Failed to connect to github.com port 443: Timed out

问题描述系统环境:window10和以往一样的pull拉取代码,在今天忽然拉取失败,提示:Failed to connect to github.com port 443: Timed out字面提示与github.com链接超时,通过ping检测github.com是正常链接,github网站也是正常能访问的。查阅网上很多资料说是与代理有关联,接着尝试如下步骤,修改测试完美解决这个问题。问题解决一、进入设置 -> 网络和Internet在代理中把使用设置脚本开关打开,接着把脚

2021-04-02 23:39:34 643 1

原创 快速入门uni-app写个简单应用

文章目录前言效果项目结构路由配置与跳转配置跳转参数获取网络请求前言uni-app相信很多人都不会陌生,特别是做前端更是,uni-app是基于vue.js开发的前端框架,一套代码多端运行;github star很平稳的增长,更多的是国内开发者关注,另外我们也看出关于跨平台的技术,flutter是遥遥领先,github star指数一定程度上可以辅助我们做技术选型。从百度指数来看,热度反而超过了flutter,可以看出uni-app框架在国内很受欢迎。觉得可以去尝试下,如果有vue的基础,对uni-ap

2021-03-20 16:13:47 232

原创 vue - 写给自己看的教程

文章是从有道云笔记转到csdn博客,如果存在图片丢失问题或者错误,可阅读原文与留言,谢谢!文章目录vue项目结构vue单文件结构项目结构模板语法插值文本指令v-bind自定义绑定指令v-ondata属性条件渲染v-if和v-else if、v-elsev-showv-if 和 v-show 区别列表渲染v-model插槽概念具名插槽插槽下父子组件的数据交互路由路由命名路由跳转router-link路由跳转编程式路由跳转路由获参总结参考之前有段时间学习了vue,并做了一个简单项目,隔了半年多再去用vu.

2021-03-20 16:05:21 56

原创 CSS - 居中布局常用方法

文章是从有道云笔记转到csdn博客,如果存在图片丢失问题,可阅读原文文章目录Flex弹性盒子方法单行居中多行居中多列居中position + transform方法margintext-align总结参考居中布局在CSS中是一个很蛋疼的老问题,相信每位在刚刚入门的时候很烦恼,网上也有很多关于居中布局的文章,由于每个人场景不同可能很难选择一个自己适合的方法。今天总结下,会以打分的方式来排名,总分是5分Flex弹性盒子方法分数:5分为什么把Flex放在第一呢,无论是水平居中还是垂直居中、单行、多.

2021-03-20 15:55:01 65

原创 CSS - Flex弹性布局笔记

文章是从有道云笔记转到csdn博客,如果存在图片丢失问题,可阅读原文文章目录基本概念作用在父元素上的属性flex-directionflex-wrapflex-flowjustify-contentalign-itemsalign-content作用在子元素上的属性orderflex-growflex-shrinkflex-basisflexalign-self参考刚刚接触CSS布局的时候,很多时候会依赖display + position + float属性来布局,在使用过程中很不方便。比如一些.

2021-03-20 15:43:28 43

原创 解决android studio download maven-metadata.xml卡住问题

最近在运行一个老项目时,一直卡在download maven-metadata.xml问题上,经历了各种操作都没发解决,比如开启VPN代理、清cache缓存、重启AS与电脑等都没解决这个问题,后来看到是maven云镜像仓库地址发现了改变,就尝试去更换新地址。刚开始只把的jcenter的仓库替换了也不行,接着后面把google和gradle-plugin的仓库地址换也换成了阿里的镜像地址。在项目根build.gradle配置如下:buildscript { repositories {

2021-03-14 09:42:28 3783

转载 解决Android依赖冲突Program type already present

前言 实际开发中,为了提高开发速度和效率,总避免不了引用第三方提供的依赖和类库,如果含有相同依赖的类库被我们引用时,而他们的版本又不相同,就有可能会导致一系列问题和异常,本文结合本人时间总结和他人经验,稍作总结。 问题 依赖 下面是一个项目build.gradle中的依赖,我们简单做一下分类 网络相关 okhttpretrofithttp-legacy 常用类库 rxpermission(权限监测)leakcanary(内存泄漏)BaseRecycl...

2021-03-12 15:19:46 580

原创 HBuilder X 下载安装内置浏览器失败

文章目录前言解决方法参考前言今天周末闲着没有什么事,就抽空玩玩所谓很强大跨平台的uni-app,HBuilder X下载解压即可使用,写一个简单demo,一切都很顺利,但每次修改调试看结果都需要跑到手机看就很蛋疼了,在HBuilder X提供一个预览功能,需要在下载内置Web浏览器插件才可使用。在下载内置浏览器插件,一直提示下载失败,请检测网络是否正常:详细错误日志,在HBuilder X中,帮助 -> 查看运行日志解决方法下次两种方法可以依次尝试下:关闭HBuider X

2021-01-30 15:00:10 920

原创 Android性能优化 - 内存优化

系统会为每个应用分配一定大小的内存,具体分配多大的内存是取决设备硬件的配置,这个内存资源是有限的,如果程序没有合理管理好内存,最终会导致程序的异常。这里指的内存是RAM给我们分配的大小内存问题具体表现有下面几种情况:内存抖动:在内存图形实时数据中呈锯齿状,整个过程在频繁创建与销毁回收对象,最终可能会导致UI上卡顿,严重情况下也会造成内存溢出内存泄漏:不使用的对象没有被回收掉,在内存图形实时数据中呈倾斜逐步上升的状态,可用内存会越来越少,最后频繁GC造成UI卡顿,甚至可能会内存泄漏OOM,程序

2021-01-16 20:05:18 57

原创 win10快捷键冲突检测与解决方法

相信很多人都遇到过,在使用一个快捷键时会经常与其他软件产生冲突,事与愿违;而且又很难找到是与哪个软件产生了冲突。有一款工具可以帮我们定位到目前的快捷键在哪个软件,这样就可以到对应的软件上把这个热键删除或者改成其他,避免热键冲突。FindGlobalHotkey下载链接提取码:mxok下载解压即可使用如果需要检查某个快捷键被使用了,直接FindGlobalHotkey即可,你在使用快捷键的时候会自动帮你捕获,找到是哪个软件,如下:最后去对应的软件去修改这个快捷键,解决冲突。注意:在使用完后需

2020-12-20 13:26:40 5251 5

原创 亿图9.3安装指南

亿图图示是一款很好用的作图软件,使用简单方便,包含大量的实例库和模版库。可以很方便的创建流程图、网络拓扑图、组织结构图、商业图表、方向图、UML、软件设计图、线框图、信息图、思维导图、建筑设计等等。

2020-12-19 19:47:24 19263 57

原创 Android 记一次 Default Activity not found

项目莫名其妙出现了Default Activity not found的问题,网上有很多各种各样的答案,但每个人的情况可能会不一样,解决方案也不是每个人都适合,下面记录下我个人解决种问题的过程:1、首页我在网络找到下面这篇文章,相对其他文章这篇还是比较靠谱些,起码评价这块是比较高的。解决Android studio 出现Warning: Default Activity not found的方...

2019-12-07 21:49:23 226

原创 MarkdownPad2安装教程

虽然现在有很多厂商推出了Markdown书写平台,要么不能本地上传图片,要么不能免费使用,要么不能离线操作,其实我喜欢就是MarkdownPad的离线操作,同时还可以修改css样式改变Markdown的显示样式。

2019-11-11 14:37:38 29720 54

原创 快速处理编译运行compileDebugJavaWithJavac问题

快速处理编译运行AS compileDebugJavaWithJavac问题compileDebugJavaWithJavac是什么,从字面上看就是在debug调试的执行javac命令,编译器遇到不能解析的内容而抛出的异常。上面一大片报红,很难定位错误的原因在哪里,在Terminal执行gradlew compileDebugJavaWithJavac命令能快速找到原因:下面是命令执行结...

2018-12-10 16:07:07 13259 2

原创 Android Studio常用设置与插件

1、IDE编码全局设置UTF-8,避免中文乱码settings -> editor -> File Encodings2、设置IDE的编码区的文字大小和样式settings -> editor -&am

2018-12-01 11:16:19 751

原创 SQLite(五) - Java数据库连接(JDBC)

首先下载sqlite-jdbc.jar 包,接着把jar包导入项目中,我这里是使用Android Studio开发工具,将jar包放在了libs目录下在build.gradle中添加依赖 implementation files('libs/sqlite-jdbc-3.23.1.jar')使用Java连接数据库,有三个基本步骤加载数据库驱动建立数据库连接创建SQL执行对象Stat...

2018-11-27 14:33:57 233

原创 SQLite (四)- 数据修改与删除、排序

修改数据在SQLite中用update来修改数据已有的数据,可以使用where子句设置约束修改的范围,如果不使用where子句来约束update语句,会修改表中所有对应类型的数据。比如下面表中的李毅和赵敏都涨2000工资,此时我们要去更新表中的数据,分别设置成10000和12000,可以通过update和where语句共同配合来修改表中的wage数据。实现如下:如果不使用where子句...

2018-11-26 22:57:29 3320

原创 SQLite(三) - 数据查询

在查询数据之前,先了解SQL的运算符,主要为Where查询子语句的使用做个铺垫,这个与java运算符是相似,比较好理解,分为算术运算符、比较运算符、逻辑运算符、位运算符,主要了解下逻辑运算符,其他的运算符与java的很类似。我们通过Where子语句来查询获取数据,一般where子句会用在select、delete、update等语句之后,用来筛选过滤符合条件的数据。比如我们现在查询下面表的全...

2018-11-26 18:11:31 887

原创 SQLite(二) - 创建表与添加数据

上篇学习了SQLite的安装与创建数据库,这节主要是学习表的创建与数据的添加。创建表在学习表的创建之前,先了解下SQLite数据类型,因为在数据库保存每一列数据都有对应的数据存储类型,比如整数、文本字符串、浮点值……打开上次创建userDB.db数据库,执行sqlite3.exe userDB.db命令,接着创建一个user表,执行创建表的SQL语句: create table user...

2018-11-26 11:30:21 6132

原创 SQLite (一) - 简介与安装使用

前言:在Android应用中有很多开源数据库框架可以选择使用(GreenDao、LitePal、Realm……),帮我们封装的很好,性能也很好使用也很方便,大大的提高我们的开发效率,为什么这次我会选择从头开始学一遍SQLite了,开源框架确实是很方便,使用多了时间久了,如果不进行适当巩固基础性的东西,我们会慢慢淡忘掉;也正好最近在做一个IM应用,是一个老项目(应该是14年启动的项目),在即时通信...

2018-11-25 21:53:45 344

原创 Android组件化之组件通信

本文是续上一篇Android组件化方案实践与思考文章一些思考,主要是针对组件间通信,比如:每个组件如何初始化各自的数据Activity间如何跳转、Fragment实例获取、如何调用普通类的函数如何在一个组件中通知另外一个组件数据变化这些问题是我们在组件化过程中都会遇到问题,在项目中肯定远远还不止这些问题,在这样我遇到的问题记录下来,有不对的地方希望大家多多指点!!组件数据初始化常规...

2018-11-20 23:37:28 2551

转载 Android 常用 mimeType 表及用法

  常用mimeType表:文件类型mime名称 文件类型mime名称3gpvideo/3gpp pdbchemical/x-pdbaabapplication/x-authoware-bin pdfapp...

2018-11-20 11:28:24 308

原创 Android组件化方案实践与思考

Demo地址:https://github.com/751496032/ComponentDemo效果图:背景Android从诞生到现在,不知不觉的走过十多个年头了,也产生了很多App,随着项目的推进不断的迭代,而App也从最初的单一功能演变成多任务功能,各种业务的错综复杂,开发人员也不断的增加,如果架构不做调整优化,会给开发带来很大的困难:各种业务代码耦合性及高,代码臃肿会越来越高,...

2018-10-21 01:25:47 357

原创 Android问题集锦(十七)- Error running 'app': Please select Android SDK

在AS中运行项目,提示报错如下:Error running 'app': Please select Android SDK其实这个问题之前遇到一次,也解决了,解决方案如下:打开Android Studio报错“Error running ***: Please select Android SDK”当我重新按照上述的方法去解决时,发现怎么操作都不生效,还是这样的问题,查阅了好多资料最...

2018-10-13 22:47:22 406

原创 Android问题集锦(十六)- adb启动命令失败Error while Launching activity 解决方案

Android Studio在编译运行调试时,报如下错误:Error while Launching activity 这个问题遇到了两次了,第一次的时候以为是手机的原故,就换了一台手机测试,就不会出现这种adb启动命令错误,后面这台手机也出现了这种情况,当时真的无奈是什么原因造成的,在网上找了很多解决方案,大部分都是clear project,重新编译运行可以解决,试了很多次都不行了,后...

2018-09-27 21:10:57 3055 5

原创 从源码角度解析 - ScrollView嵌套ListView只显示一行的问题

上面的布局在默认情况下,是达不到我们想到的效果,只会显示ListView的一行内容,同样的我们可以通过反推的方式,来查找原因的所在。 为何只会显示一行??我们可以先看看ListView的onMeasure方法

2018-09-04 23:23:42 152

原创 从源码角度解析 - ScrollView嵌套ViewPager不显示的问题

以上布局的方式(ScrollView嵌套ViewPager),在默认情况下是达不到我们想要的效果,整个ViewPager是无法显示的,网上已经有很多解决方案,但很少有文章解释为什么要这样修改,是什么原因造成ViewPager显示不了,现在我们从源码的角度来分析问题的所在。 既然是无法显示,那可能是在ViewPager测量过程中出现了异常,可以先从源码看下ViewPager在onMeasure方法是如何构成的

2018-09-04 22:44:46 674

转载 Source Insight 4.0 最简单的破解安装

来源于 https://blog.csdn.net/biubiuibiu/article/details/78044232 ...

2018-08-26 22:46:17 13707 17

原创 Android问题集锦(十五)- 成功解决org.gradle.api.internal.tasks.compile.CompilationFailedException

在一次引入第三方库之后,在Run运行时突然报以下错误: 'Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.' 经过一轮Google后,网上说的原因是: ...

2018-08-15 18:20:22 31395 7

最新防微信

模仿微信写的一个Demo,布局基本显示完全,ListView列表显示和水平侧滑删除。

2015-10-18

空空如也

空空如也

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

TA关注的人 TA的粉丝

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