自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (16)
  • 收藏
  • 关注

原创 Android 12 ~ 13 版本适配

3,读取媒体文件权限适配,使用 READ_MEDIA_IMAGE、READ_MEDIA_VIDEO、READ_MEDIA_AUDIO 替代READ_EXTERNAL_STORAGE。— 最简单的方式:windowBackground,设置一个纯色值;1,通知权限:POST_NOTIFICATIONS。2,必须声明 android:exported。2,剪贴板的内容会在 60min 之后清除。5,优化了 TextView 的断字性能。4,在后台使用身体传感器需要新的权限。1,默认的启动画面。

2022-10-24 14:21:26 1297 1

原创 React Native 踩坑备忘录

以下内容基于系统:MacOS 10.15.71,搭建环境:参考 RN 中文网yarn install --ignore-engines 会根据 package.json 文件创建必要的文件。比如:node_modules 目录2,ReactNativeActivity,getIntent() 是空的问题。解决方案:1,考虑用 ReactNativeFragment创建 RN页面,再放到正常的 Activity里面。2,参考 ReactNativeActivity,自己写 Delegate

2021-12-31 17:14:25 1775

原创 Replugin 宿主嵌入插件 Fragment

业务场景:在某个插件里面,我们想嵌入另一个插件的视图。1,尝试把 Fragment 换成 View,拿到插件的 View 放到宿主。2,宿主里面依赖 support 包,其他插件全部不依赖 support 包(provided)。3,反射代理插件的 Fragment 生命周期。第一种方案,是最直接的,也是问题最少的。第二种方案,也比较简单,不过需要注意 support 包的版本要统一,还有注意主题 Theme。第三种方案,需要适配。很多时候,我们碰到的业务场景是把一个插件的 Activity

2021-11-30 15:23:00 739

原创 接入 Google Play 结算系统踩坑

官方接入地址以 com.android.billingclient:billing:4.0.0 版本介绍:一,准备工作1,准备 Google play 开发者账号。2,创建应用内商品(商品id,商品描述,定价)。3,应用为发布状态之后,在 app 里面才能执行支付等操作。就算是开发内测阶段,也必须上传一个 apk,审核通过到发布状态。二,集成1,连接 Google Play 服务 private val purchasesUpdatedListener = PurchasesUpd

2021-11-18 18:18:05 2298

原创 Replugin 自定义坑位和映射跳转

Replugin 是我们熟悉的插件化框架,并且也简单好用。某些场景,我们需要自定义 Activity 的坑位。比如一些特殊的弹框,像锁屏上面弹框。最好加上属性“showOnLockScreen”<activity android:name="自定义坑位" android:configChanges="keyboardHidden|orientation" android:showOnLockScreen="true" android:showWhenLocked="true" andr

2021-03-05 18:35:49 516 1

原创 Android 全局 DNS 解析拦截

要拦截 DNS 解析,首先得找到系统哪个类去解析 Host 的。

2020-11-25 15:02:37 2625

原创 Android 上 WebView 和 H5 的调试

Android 端我们一般都是使用 WebView 加载 H5 网页,而我们用到和 H5 JS互调时,很多时候是跟前端开发人员联调来解决问题。只要涉及到2个人以上的联调就是比较麻烦的。因为大家大概率不是坐在一起,发现有问题也只能打字沟通。这里介绍一种调试 WebView的好方式。就是利用 Chrome 浏览器调试。1,要让 H5 能调用我们的方法,需要注入 JS。addJavascriptInterface(mJavascriptInterface, "Bridge");public class

2020-09-22 17:25:57 1825

原创 Java 思想

Https加密解密过程:https://jingyan.baidu.com/article/d5a880ebce62de13f147ccc5.htmlhttps://blog.csdn.net/resilient/article/details/73000977设计模式1,单例,饿汉模式,懒汉模式,双校验 + volatile,静态内部类;2,工厂模式,多线程 Executors;3,建造者模式,AlertDialog4,策略模式,Okhttp 的 Interceptor5,观察者模式,Ev

2020-06-30 18:30:06 214

原创 Android 思想

性能优化:TraceView 优点:通过埋点的方式精确的调试某个方法。TraceView 缺点:目前 DDMS 中的 TraceView 有 bug,find 无法使用。直接用 sdk 的 可以 find。运行时开销大,整体都会变慢。直接用 Android Studio 查看 trace 文件的缺点:无法直观地对比不同线程的执行时间。Profiler开源库的原理:事件总线:EventBus,Otto;图片库:Picasso,Fresco,Glide;网络库:Volley,Retrofi

2020-06-30 18:28:24 235

原创 算法

两个超大正整数相加 String a = "20394803294"; String b = "20394803294"; StringBuffer buffer = new StringBuffer(); int bound = 0; int i = a.length()-1; int j = a.length()-1; while(i >=0 || j >= 0){

2020-06-30 18:25:38 153

原创 Android上的模拟点击

模拟点击在 Android 上有2种情况:1,只模拟点击自己的页面;2,只要自己进程活着,不管是哪个应用在前台,都可以模拟点击;第一种情况比较简单: long downTime = SystemClock.uptimeMillis(); float x = 200; float y = getResources().getDisplayMetrics().heightPixels - 200; final MotionEvent downEvent = MotionEvent.obta

2020-06-15 18:15:06 1696

原创 Flutter 混合开发中 aar 输出

很多时候,我们都是在已有的 Android 工程,引入 Flutter Module 工程,从而进行混合开发的。而引入 Flutter 的方式一般有2种:1,源码依赖优点:方便调试,可支持热重载;缺点:所有开发人员,都需要安装 Flutter SDK;接入方式:(这里不做详细介绍)创建一个 Flutter Module 工程,Android 主工程里面 setting.gradle 中添加:setBinding(new Binding([gradle: this]))

2020-06-10 16:14:50 707

原创 Flutter 状态管理 Provider

Flutter 状态管理,实际来说就是数据和视图的绑定和刷新;这块对应到 H5,就比较好理解,这个概念也是从前端来到;对应到 客户端,就是监听回调,类似事件总线(EventBus);Provider 基本使用:建议在 main 方法加上这段代码,防止热重载报错,如果还是报错就必须点击下 run 按钮了;void main() { WidgetsFlutterBinding.ensureInitialized(); Provider.debugCheckInvalidValueType

2020-06-08 17:23:48 425

原创 Flutter 动态下发更新(Android 端)

本人之前基于 Flutter SDK 1.2.0版本,做过一次动态更新。Flutter混合开发,热修复(Android端)随着 Google 对 Flutter 的维护,Flutter变得越来越好了。因为官方对Flutter不做动态更新的计划了,Flutter Release 版本的加载方式有了变化。这里针对 Flutter SDK 1.12.13+hotfix.8 版本又做了修改;主要做了如下修改:1,覆盖修改 flutter.jar,FlutterLoader 类2,为了兼容 Flutter

2020-05-26 10:45:24 1725

原创 Flutter WebView插件研究

Flutter 出来有几个年头了,目前还有不少问题,业内也在慢慢丰富各种插件来完善功能。这里详细介绍 Flutter 中 WebView 的坑。首先介绍下目前pub上常用的两个插件:1,...

2020-04-23 17:03:13 724

原创 Android 6~11版本适配

Android 10:1,分区存储(Scoped Storage)解决方案:1,manifest 里面加属性 requestLegacyExternalStorage2,getExternalFilesDir(),getExternalCacheDir()2,深色主题;3,后台定位权限,ACCESS_BACKGROUND_LOCATION;4,应用处于后台时,无法启动 Activit...

2020-03-18 13:54:25 1100 1

原创 Git 命令使用(备忘)

很早之前就用过 Git,SVN。这样来回切换,一些命令总是忘或者弄混淆了,这里主要备忘一下。1,通用配置git config --global user.name “lulei”git config --global user.email [email protected],下载远程仓库2.1,直接下载打开对应目录,直接clonecd /Users/lulei/Work/GitWor...

2020-03-13 14:39:14 185

原创 Python 爬虫实践-抓取小说

1,了解学习 requests 库;网络请求的相关接口;拿到网页的源代码;2,学会用 浏览器的 检查;3,找到规律,写代码,实现自动化抓取;

2019-10-14 16:33:45 3118

原创 Flutter 踩坑(Web)

持续更新中 …1,Flutter Web 开发,跟移动端 Flutter 几乎不一样;2,import ‘package:flutter/material.dart’; 全部要换成import ‘package:flutter_web/material.dart’;3,Android Studio 是不支持 Flutter Web 的,需要下载 VS Code 或者 IDEA;Flut...

2019-08-06 16:56:12 357

原创 Flutter混合开发时使用热重载Hot Reload

纯 Flutter 工程,我们用 Android Studio 打开,然后运行起来,Control + S,或者点击热重载按钮,就会直接刷新页面了。但是 Flutter 混合开发时,Control + S,显然是不行的,并且热重载按钮是不可点击的,因为工程项目是以Android项目打开的,而不是Flutter工程。实际具体操作也很简单,1,首先以Android项目,运行起整个工程;2,到命...

2019-07-15 19:08:20 2932

原创 Flutter混合开发,热修复(Android端)

热修复,目前只支持 Android 端的热修复。纯Flutter代码,Google已经是支持热修复了,flutter.jar 里面也有相关的逻辑代码。利用的是微软的 CodePush。Flutter 页面显示到 Android 端,实际就是用的 FlutterView 填充到 Activity或者 Fragment上的。public static FlutterView createVie...

2019-05-10 15:54:26 1989

原创 Flutter 踩坑记(Android)

持续更新中 …flutter packages pub run build_runner watch4,flutter混合开发运行报错:VM snapshot must be valid. /Check failed: vm. Must be able to initialize the VM;解决方案:https://www.jianshu.com/p/9b96999fc3851.在...

2019-03-06 18:01:35 10192 3

原创 Windows下利用 Python 脚本自动安装 Apk

开始学习 Python

2019-01-23 17:11:10 2066 2

转载 非常用网站目录

BAT微信公众号:https://mp.weixin.qq.com/ 微信支付:https://pay.weixin.qq.com/ 支付宝开放平台:https://docs.open.alipay.com/rules_trade/ttr3dv电子书/二手书当当:http://book.dangdang.com/ 亚马逊:https://www.amazon.cn 京东:w...

2018-08-14 10:35:28 824

原创 Flutter 安装教程

Flutter 是谷歌的移动UI框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作。在全世界,Flutter 正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。这里简单介绍下它的安装过程:1,国内镜像URL配置对于 Linux 和 MacOS,只需要下面命令即可:export PUB_HOSTE...

2018-08-10 15:57:27 2047

原创 Android 开发踩坑记

持续更新中 …10,在 Android 5.0 (API level 21) 以下机器上, drawable xml 资源中引用 attr , 如果在 layout 布局中引用这样的 drawable 资源, 则会引发崩溃9,singleline在ListView中效率不高, 滑动滞后,但是maxline , ellipsize 并不能完美替代singleLine。毕竟 singlel...

2018-08-06 17:49:53 493

原创 Git 命令值得注意的几个点

大多数人对 Git 的常用命令都有一定的了解,这里罗列一些具体案例说明需要使用哪些命令。 graph LR; Remote – pull – &amp;amp;amp;amp;gt; Repositorygraph LR;   A–&amp;amp;amp;amp;gt;B;   A–&amp;amp;amp;amp;gt;C;   B–&amp;amp;amp;amp;gt;D;   C–&amp;amp;amp;amp;gt;D; 从网上clo

2018-08-06 15:25:21 266

原创 自定义清理动画

先上图: 再附上:源码地址 欢迎大家star~上面的自定义动画效果,有以下三个关键点: 1,背景颜色变化; 2,中心位置风车的旋转; 3,四周小圈圈,吸收进中心位置; 下面详细介绍它们实现方式:实际整体控制动画的流畅性,是利用属性动画辅助的:mAnim = ValueAnimator.ofInt(0, 100);mAnim.setDuration(30 * 1000)...

2018-08-03 17:31:15 423

原创 利用Transition,实现朋友圈点击图片全屏浏览效果

本文主要是介绍 Android 5.0 之后的 Activity 过渡动画 Transition。如果是整个页面的动画,实际大部分都可以用 overridePendingTransition 实现了。这里主要还是介绍当第二个界面的出现方式与第一个界面有一定的关联性的时候,特别是有共享同一元素的时候,需要的连贯的过渡动画。先看效果图:具体实现:1,首先当我们用到 Transition...

2018-07-27 14:58:25 2090

转载 Android安全开发规范

1、Activity 安全   描述:可被外部调用的activity,起因是因为 menifest.xml中Activity的属性explorted=true ,导致可以被劫持或者单个activity调用出现异常。   检测方法:在ADB shell 环境下输入 am start -n com.qihoo.something/com.qihoo360.SomeActivity   修复方案:...

2018-07-24 15:14:05 1248

原创 JavaPoet-编译时注入代码

JavaPoet 是 Square 公司推出的开源 Java代码生成框架,提供接口生成 Java 源文件。它的项目主页及源码:https://github.com/square/javapoet这个框架功能非常有用,我们可以很方便的使用它根据注解、数据库模式、协议格式等来对应生成代码。通过这种自动化生成代码的方式,可以让我们用更加简洁优雅的方式要替代繁琐冗杂的重复工作。例如业内的一些开...

2018-07-19 18:40:20 1299 1

原创 Handler,MessageQueue,Looper,你所不知道的Asynchronous

结合源码分析Handler还是可以异步的。

2018-07-10 16:07:50 2761

原创 使用OkHttp后,遇到的那些“坑”

首先说明下:本文碰到的一些问题,都是在 okhttp-3.10.0,okio-1.14.0 这个版本碰到的。1,OkHttpClient 默认的 connectTimeout,readTimeout,writeTimeout 都是10秒,实际在应用体验上来说,有点短的。项目中最好 connectTimeout = 10s,readTimeout= 60s,readTimeout= 60s,如果...

2018-07-05 15:07:07 4918

原创 结合源码分析RecyclerView复用机制: Recycler

只从 RecyclerView 出现,很多开发者都替换 ListView/GridView,改用它了。

2018-06-28 20:18:29 833

原创 牛逼的AccessibilityService

AccessibilityService,无障碍辅助功能,运行在后台,并且能够收到由系统发出的一些事件(AccessibilityEvent,这些事件表示用户界面一系列的状态变化),比如焦点改变,输入内容变化,按钮被点击了等等,该种服务能够请求获取当前活动窗口并查找其中的内容。换言之,界面中产生的任何变化都会产生一个时间,并由系统通知给AccessibilityService。这就像监视器监视

2017-09-30 18:53:07 667

原创 Android利用ffmpeg做视频裁剪

根据自己需求,编译so,或者用网上搜现成的;https://github.com/FFmpeg/FFmpeg时长裁切:ffmpeg -i src.mp4 -ss 3 -t 10 out.mp43表示起始时间,10表示长度,也就表示视频裁切出来是3-13s的视频;尺寸裁切:ffmpeg -i src.mp4 -strict -2 -vf crop=1080

2017-09-14 16:27:57 2638

原创 浅谈视频壁纸

视频壁纸,对于动态壁纸开发,就得用到WallpaperService;manifest配置:配置实时壁纸Service --><service android:name="com.mill.wpengine.VideoLiveWallpaper" android:label="@string/app_name" android:exported="true"

2017-09-06 16:53:24 1854

原创 NDK生成so文件

网上资料很多,我拿一个通用的模板出来,特别是重新编译别人写好的jni代码单独一个so生成:/Users/mier/Library/Android/sdk/ndk-bundle/ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=./jni/Application.mk NDK_LIBS_OUT=./jniLibs说明:         /

2017-04-26 14:27:55 1443

原创 Android知识点目录

本人参考了一本书籍,但是那本书比较“坑”,没有很详细的介绍各个知识点,都还需要别人去单独搜索查询详细资料,那这本书实际就只是来了解个目录了。。。持续更新中...第1章 Android触摸事件传递机制    1.1 触摸事件的类型   1.2 事件传递的三个阶段   1.3 View的事件传递机制   1.4 ViewGroup的事件传递机制        三

2017-04-25 15:39:56 833

原创 Android中的Dalvik和ART有啥区别?

什么是Dalvik?Dalvik是Google公司自己设计用于Android平台的虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex格式的; font-family: -apple-system,"sf="" ui="" sans="" micro="" font-size:="" background-col

2017-04-25 10:19:47 477

android.ipr

android4.4.4源码对应的 android.ipr和 android.iml文件

2018-06-22

Speex上层Android源码

speex编译成功后,写的java上层源码,包含speex录音,speex播放

2014-06-18

可以拖动的ListView

可以拖动的ListView,拖动排序,Demo很详细

2013-07-15

可以拖动的GridView

可以拖动的GridView,适合一页显示的,不支持下拉,支持翻页

2013-07-15

类似手机QQ的好友列表的ListiView

类似手机QQ的好友列表的ListiView,每多少个items有一个Header,滑动到header就header不动了,只是item动

2013-07-15

类似人人的侧边滑动菜单

类似人人的右滑显示菜单,代码注释也比较全,可以自己加以修改

2013-07-15

FlipView(类似ViewPager的翻页)

类似VIewPager的翻页,但是肯定是不一样的,效果比较新,下下来看看就知道

2013-07-15

SNP文件处理

用于生物遗传里面,把一个SNP文件里面的 2个变成一个

2012-05-16

密码生成器

方便那些不喜欢记密码的人,例如:“lulei”生成6位的密码,过程是:先转变成ASCll(108 117 108 101 105)在位数上面的书累加(108--&gt;1+0+8=9),直到只有一位数时,就是992600

2012-05-16

静态路由配置实验报告

计算机网络实验报告,路由协议与配置里面的, 静态路由配置

2012-05-16

基于小波分析和神经网络的井下电缆故障测距方法

基于小波分析和神经网络的井下电缆故障测距方法

2012-05-08

基于灰色关联分析和案例推理的古陶瓷分类方法

基于灰色关联分析和案例推理的古陶瓷分类方法

2012-05-08

复变函数与积分变换(西安交大_第四版)课后答案

复变函数与积分变换,课后答案,(西安交大_第四版),这里只是部分答案

2011-10-28

大象-Thinking_in_UML.pdf

大象-Thinking_in_UML,这是大象(有很深的UML设计经验的人)就自己多年的经验而写的一本书。

2011-10-27

UML系统分析/获取需求

UML系统分析/获取需求.就电力企业收电费的系统,如何获得需求这一问题,做出了较好的回答!

2011-10-27

CGE模型的求解原理与方法

非常适合CGE模型求解。方法总结得比较多,适合初学者学习,建议下载学习。欢迎下载。

2011-08-27

空空如也

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

TA关注的人

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