自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李海明的博客

为了梦想而飞,不枉此生。

  • 博客(151)
  • 资源 (5)
  • 收藏
  • 关注

原创 Flutter学习 dart语言特性

一、编译模式JIT编译模式(JIT In Time,即时编译)JIT在运行时即时编译,在开发周期中使用,可以动态下发和执行代码,开发测试效率高,但运行速度和执行性能则会因为运行时即时编译受到影响。AOT(Ahead of Time,运行前编译)AOT即提前编译,可以生成被直接执行的二进制代码,运行速度快、执行性能表现好,但每次执行前都需要提前编译,开发测试效率低。在开发期间可以使用JTI编译,可以缩短产品的开发周期。Flutter最受欢迎的功能之一热重载,正是基于此特性。而在发布期使用AOT,就不

2021-07-20 09:10:28 400

原创 Android IPC的几种方式

IPC的概念IPC即Inter-Process Communication(进程之间的通讯)。Android是基于Linux,而Linux出于安全的考虑,不同进程间不能之间操作对方的数据,这叫做“进程隔离”。在Linux系统中,虚拟内存机制为每个进程分配了线性连续的内存空间,操作系统将这种虚拟内存空间映射到物理内存空间,每个进程有自己的虚拟内存空间,进而不能操作其他进程的内存空间,只有操作系统才有权限操作物理内存空间。进程隔离保证了每个进程的内存安全,防止篡改其他进程的数据。IPC方式B

2021-02-08 10:38:03 607 1

原创 Android Native支持H5打开相册以及相机

第一步:重写WebChromeClient方法,基本上适配5.0以上就ok了。protected ValueCallback<Uri> mUploadMessage;protected ValueCallback<Uri[]> mUploadMessages;//重写WebChromeClient方法 // For Android 3.0+ public void openFileChooser(ValueCallback<Uri> uploadM

2021-02-05 14:53:45 395

原创 Android H5+Native开发遇到的问题以及解决方案

1、webView软件盘遮挡输入框问题/** * 用于解决全屏时,Activity设置了adjustSize却不起作用的问题。setContentView之后调用{@link #assistActivity(Activity)} */public class AndroidBug5497Workaround { public static void assistActivity(Activity activity) { new AndroidBug5497Workaroun

2021-01-26 14:18:08 403

原创 Flutter 仿今日头条顶部tab切换

import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';import 'package:flutter/services.dart';import 'package:flutter_weight_ui/model/subject_data_entity.dart';import 'package:flutter_weight_ui/model/tab_list_data_entity.dart';.

2021-01-25 09:36:28 387

原创 Flutter之listView加载数据 刷新以及加载更多

import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';import 'package:flutter/services.dart';import 'package:flutter_weight_ui/model/home_article_data_entity.dart';import 'package:flutter_weight_ui/net/RequestUtils.dart';cl..

2020-12-11 15:13:42 2217

原创 Flutter之banner实现

先写一个banner控件import 'dart:async';import 'package:flutter/material.dart';import 'package:transparent_image/transparent_image.dart';//这个是在网络上找的一个例子,练手const MAX_COUNT = 0x7fffffff;////// Item的点击事件///typedef void OnBannerItemClick(int position,...

2020-12-11 14:56:02 2751

原创 Flutter之编写公共Widget

如上图,做一个抽取import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';class RowWidget extends Widget{ @override Element createElement() { return Container( width: double.infinity,//充满屏幕 height: 50.0, ..

2020-12-11 14:42:19 477

原创 Flutter之底部tab切换

效果见上图:(主要是底部的切换实现)import 'package:flutter/material.dart';import 'file:///D:/henanproject/flutter_weight_ui/lib/home/home_tab_page.dart';void main() { runApp(MyApp());}class MyApp extends StatelessWidget { // This widget is the root of yo...

2020-12-11 14:32:52 672

原创 Android RecyclerView 下拉刷新 java.lang.IndexOutOfBoundsException: Inconsistency detected

package com.neusoft.ls.smart.city.home.activity.govservice;import android.content.Context;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.AttributeSet;public class CrashLinearLa.

2020-12-07 11:18:00 218

原创 Android studio sun.security.validator.ValidatorException: PKIX path building

今天来了新同事,遇见以上问题解决办法%JAVA_HOME%/jre/lib/security/cacerts出问题,把没问题的机子上的cacerts目录覆盖它,done!

2020-12-01 22:19:11 1149

原创 Android 处理webView输入框遮挡软件盘问题

package com.neusoft.si.j2jlib.wrapper;import android.app.Activity;import android.graphics.Rect;import android.os.Build;import android.view.View;import android.view.ViewTreeObserver;import android.widget.FrameLayout;/** * 用于解决全屏时,Activity设置了adjus.

2020-11-29 15:19:02 238

原创 Android 解决红米等部分手机Toast默认显示应用名称问题,去掉应用名称

最近遇见一个奇葩的问题,就是部分手机例如红米手机会出现Toast默认在文字前面加上应用名称最后通过自定义Toast解决了这个问题。<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#cc000000"

2020-11-26 20:42:16 1882

原创 Installation did not succeed. The application could not be installed莫名其妙的问题解决

android.injected.testOnly=false在gradle.properties中添加上就可以了。

2020-11-23 15:44:11 3002 2

原创 java笔记

抽象类和接口抽象类不能有对象,不能通过new关键字来创建抽象类的对象抽象类中的抽象方法必须在子类中被重写,否则子类也是抽象的,抽象类可以有不是抽象的方法接口中的所有属性以及方法默认为:public static final 修饰的抽象类与接口的区别就是抽象类可以有实现的方法,而接口中没有java中的集合框架主要包含了两大类Collection mapCollection中包含了List与set集合list接口存储一组不唯一,也就是可以有重复的元素,有序的对象,Set接口存储.

2020-11-04 19:54:44 81

原创 java总结之String异常内部类

1、String StringBuffer StringBuilder的区别String是final类,不能被继承重写。对于已存在的String对象,修改它的值,就是重新创建一个对象。StringBuffer是一个类似于String的字符串缓冲区,使用append()方法修改字符值,使用toString方法转换为字符串,并且是线程安全的。StringBuilder是非线程安全的,速度更快。跟StringBuffer相同2、异常处理Exception、Error是Throwable类的子类

2020-11-03 06:49:24 133

原创 Android 遇见web地址带有空格去掉空格

1、StringBuffer str = new StringBuffer("https://www. baidu.com"); str.toString().replaceAll(" ","");2、str.replaceAll(" ","")

2020-11-02 15:20:46 126

原创 java Object static final总结

1、Object中的equals方法是对两个对象的地址值进行的比较(即比较引用是否相同),String类重写了equals方法,能够判断两个字符串包含的内容是否相同。public boolean equals(Object obj){ return (this == obj);}2、hashCode方法给对象返回一个hashcode值。这个方法被用于hashtables,例如常用的hashMap它的性质是:在一个Java应用的执行期间,如果一个对象提供给equals做比较的信息没有被

2020-10-31 08:42:28 195 3

原创 Android dataSotre初次尝试

这个库是google最近出的,用来替代sp,今天出差回来尝试一下。1、添加依赖包 // Preferences DataStore implementation "androidx.datastore:datastore-preferences:1.0.0-alpha02"//datastore // Proto DataStore implementation "androidx.datastore:datastore-core:1.0.0-alpha02" i

2020-10-30 16:31:21 1272

原创 flutter总结

1、StatelessWidget和StatefulWidget区别StatelessWidget和StatefulWidget是flutter的基础组件,日常开发中自定义Widget都是选择继承这两者之一。两者的区别在于状态的改变,StatelessWidget面向那些始终不变的UI控件,比如标题栏中的标题;而StatefulWidget则是面向可能会改变UI状态的控件,比如有点击反馈的按钮。StatelessWidget就没什么好研究的了,StatefulWidget的创建需要指定一个Sta

2020-10-28 11:24:05 153

原创 Android activity知识总结

生命周期onCreate onStart onResume onPause onStop onDestoryA启动BA onPause B onCreate onStart onResume A onStop 如果B是透明的A是可见的则不会回调A的onStop如何保存数据,恢复数据在acivity中有一个方法是onSaveInstanceState的方法,通过key-value的形式保存数据,再次回到activity中调用onRestoreInstanceState通过key取出valu

2020-10-26 20:54:14 159

原创 java 垃圾收集器

1、CMS收集器CMS Concurren Mark Sweep 收集器是一种以获取最短回收停顿时间为目标的收集器。目前很大一部分的java应用都集中在互联网站或B/S系统的服务端上,这类应用尤其重视服务的响应速度,希望系统停顿时间最短,以给用户带来较好的体验。从名字上就可以看出是标记清除算法实现的,他的过程更复杂一些,包括四个步骤,初始标记,并发表弟,重新标记,并发清除,其中初始标记、重新标记这两个步骤任然需要Stop The World。初始标记仅仅只是标记一下GC Roots能直接关联到的对.

2020-10-25 16:56:27 85

原创 java 垃圾回收Gc算法粗略总结

java gc的存活判断引用计数每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。可达性分析从Gc Roots开始向下搜索,搜索所走过的路径称为应用链相连时,则证明此对象是不可用的。不可达对象。在Java余元中,GC Roots包括:vm栈中引用的对象,方法区中类静态属性实体引用的对象,方法区中常量引用的对象。本地方法栈中JNI引用的对象。垃圾收集算法1、标记清除算法。就是先标记出可回收的对象,

2020-10-24 09:12:57 143

原创 java总结JVM

1、java jvm工作流程java源代码文件也就是.java文件通过java Compliler java编译器,执行为.class文件也就是java字节码文件,.class文件通过类加载器通过执行引擎去执行程序,还有就是通过类加载器把.class文件执行到运行时数据区,在通过执行引擎去执行程序。运行时数据区包含:程序计数器,java虚拟机栈,本地方法栈,java堆,方法区程序计数器就是每条线程都需要有一个程序计数器,计数器记录的是正在执行的指令地址,如果正在执行的是Native方法,这个计数

2020-10-23 09:33:44 80

原创 Android kotlin开发项目MVP架构搭建

1、引入需要的网络库 implementation 'com.squareup.retrofit2:retrofit:2.7.1' implementation 'com.squareup.retrofit2:converter-gson:2.7.1' implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareu

2020-10-02 10:25:59 711

原创 Android引包出现Duplicate class com.xxx.xxx found in modules错误

其实就是依赖的包版本不一样,产生了冲突,把所有依赖的库改成版本一致的就可以了。

2020-08-27 15:02:20 27856 7

转载 Android 随机生成验证码的bitmap

import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import java.util.Random;public class Code { //随机数数组 private static final char[] CHARS = { '0','1','2', '..

2020-07-23 15:42:14 264

原创 Android retrofit网络交互在后台返回的response中取出Set-Cookie的值

1、需求,服务器返回的是文件流,服务器把标识放在了response的header中,由于用的网络框架是retrofit,该如何取出Set-Cookie的值呢?Call<ResponseBody> verCode = inf.getVerCode(); verCode.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Cal

2020-07-23 15:30:32 1917

转载 文件存储与数据库存储

在大多数企业开发或Web开发中,都会涉及数据的存储和检索。存储数据有两种基本的方法:保存到普通文件中(File System),或者保存到数据库(Database)中。文件存储常见,并且简单,操作系统提供的完善的API,所以在早期项目中都会使用文件作存储载体。但是随着企业业务越来越复杂,网站访问量也越来越大时,对数据的并发性和检索速度有更高的要求。所以慢慢的也就引入使用数据库作为数据存储了。使用普通文件的遇到的问题:当文件变大时,使用普通文件将会变得非常慢,访问速度制约了应用性能 ..

2020-07-10 14:17:18 3089

转载 Android 为什么主线程的looper 一直循环不会ANR

阅读此文需要对handler原理有一定的了解程度。Handler 原理和源码首先贴出来两个知识点。第一 java线程可以休眠第二Android只有主线程可以更新UI有人觉得这是傻子都知道的知识,那接下来说傻子可能不知道的知识直接叙述所有java的入口都是main方法 由虚拟机调用,Android 的也不例外,刚开始学习那会根本没研究Android 从哪里开始执行的,现在我知道了告诉那些不知道的同学,不是从application。直接看源码ActivityThread看到.

2020-06-06 14:15:15 302

原创 Android anr应用无响应的问题

Waiting because no window has focus but there is a focused application that may eventually add a window when it finishes starting up.记得申请权限,读写等权限,就ok了。真的折磨人呢。...

2020-05-08 17:24:45 1654 1

原创 Android 关于网络图片加载不出来的问题

最近遇见一个问题,就是用Glide加载图片怎么也不显示,后来换了框架,但是还是加载不出来。网络权限加了,能检查检查的都检查了图片地址在浏览器能打开,说明地址没问题最后换了个手机8.0的,能加载出来,说明是手机版本的问题,9.0以上就不支持http地址的图片了在Application加上这行,清单文件中android:usesCleartextTraffic="true"就...

2019-11-13 09:02:08 2947 2

原创 Android scrollview嵌套recycleView刷新adapter位置跳的问题

1、在recycleView加上属性,这种解决方案简单暴力但是如果你该页面有想要操作的,输入框之类的就不行了。android:descendantFocusability="blocksDescendants"2、解决办法,手动设置自动获取焦点的控件失去焦点,就不会位置就不会跳到获取焦点的位置了。...

2019-11-07 11:12:52 665

原创 华为方舟编译器开源了,官方文档也出来了

地址https://www.openarkcompiler.cn/document/principle

2019-09-03 11:16:50 2429

原创 Android 热修复(腾讯bugly)

腾讯bugly集成指南1、在build.gradle中添加依赖dependencies { classpath 'com.android.tools.build:gradle:3.2.0' classpath 'com.vanniktech:gradle-android-junit-jacoco-plugin:0.6.0' classpat...

2019-08-29 15:02:29 488

原创 Android 阿里云推送集成指南

一、注册阿里云开发者账号,创建应用获取Appkey以及AppSecrent二、在AndroidMainifest添加权限,还有一些其他权限(基本上你自己的项目已经写了,我就不贴了)<uses-permission android:name="android.permission.WRITE_SETTINGS"tools:ignore="ProtectedPermissions"...

2019-08-23 15:12:04 2438

原创 Android 自定义View 自定义组合控件

近来公司项目不是很急,空闲时间比较多,抽空来复习一下,自定义View,先来一个大家都能用的上还比较简单的。每个项目页面都有数据控制展示不同的页面,例如加载前,加载失败,网络链接问题。下面直接上代码了。很简单,大家直接改吧改吧就直接能用到自己的项目中了。package com.example.rechpush;import android.content.Context;import...

2019-08-09 10:42:10 235

原创 Android关于recyclerview setVisibility的VISIBLE不展示的问题

开发项目遇见一个奇葩的问题,就是控制两个recyclerview显示隐藏。当点击一个显示隐藏recyclerview的时候,第一个是没有问题的,但是点击第二个就会出现问题,并且已经打印log,已经是展示隐藏了。如果先点击第二个,所有的显示隐藏是没有问题的。很棘手。最后在第二个显示的时候加了一行这个代码成功解决。rv_vehicle_enegy.requestLayout();...

2019-07-26 11:32:42 2150

原创 Android studio Could not resolve all files for configuration ':app:debugCompileClasspath'.等

repositories { google() jcenter() maven{ url 'https://maven.aliyun.com/repository/google'} } repositories { google() jcenter() maven { url "htt...

2019-06-25 10:43:25 12403 6

原创 Android 沉浸式状态栏跟虚拟按键冲突问题 隐藏虚拟按键

1、沉浸式状态栏 View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); getWindow().setSta...

2019-05-24 11:27:04 891

android glide

glide最基本的用法,对于小白了解glide的用法最为合适。

2017-02-05

android三级联动地址选择

android收货地址选择的demo

2016-09-20

Volley简单封装

主要有VOlley的二次封装,以及post请求实例,get请求大家应该都会了,还有通过tag绑定生命周期

2016-09-13

Volley网络图片加载

主要对Volley加载图片,NetworkImageView加载图片的两种方式

2016-09-12

AIDLService,远程调用例子。包括服务端与客户端两个工程文件

AIDLService,远程调用例子。包括服务端与客户端两个工程文件

2015-10-19

空空如也

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

TA关注的人

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