自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android Hook系统 Handler 消息实现

ActivityThread mH hook

2023-07-28 18:51:02 805

原创 flutter原生混合开发flutterBoost 微信分享二次回跳唤起flutter页面 部分华为鸿蒙白屏问题

flutter原生混合开发flutterBoost 微信分享二次回跳唤起flutter页面 部分华为鸿蒙白屏问题

2023-01-17 14:40:34 331

原创 flutter_inappwebview超长富文本 Android crash问题记录

flutter android 超长文本 crash 问题及解决过程

2023-01-07 11:08:41 889

原创 Android release调用Flutter崩溃

问题Flutter混合开发Android debug正常,Android release调用Flutter崩溃问题2021-11-26 22:17:35.057 9897-9897/com.jjmc.esurgerytest E/flutter: [ERROR:flutter/runtime/dart_vm_data.cc(18)] VM snapshot invalid and could not be inferred from settings.2021-11-26 22:17:35.0.

2021-11-26 22:53:12 787 1

原创 bugly 集成后错误日志不上传(问题记录备份)

app运行正常,问题:CrashReport.testJavaCrash() 测试crash后不上报java.lang.NullPointerException: Attempt to invoke virtual method 'byte[] java.lang.String.getBytes(java.lang.String)' on a null object referenceCrashReport: java.lang.NullPointerException: Attempt to

2021-11-26 22:02:38 2341

原创 搭建maven私服 Android项目依赖(基于Centos下maven)

前言 组件化过程,拆分lib,将通用lib抽取成单独的module,并将其打包成了aar,就想着也是可以去迭代、上传和发布版本,就想着搭建一个自己的maven来实现依赖版本更迭,百度若干帖子,最终实现,这里记录和汇总下整个流程搭建流程 Centos安装jdk(略) 我这里使用的是自己的阿里云服务器,之前有搭建过Jenkins,用于Android项目自动化构建,这里就不再赘述jdk的安装过程了,不了解的同学可以参考之前的文章《基于Centos...

2021-08-19 21:10:14 560 3

原创 apksigner 签名检查

起因使用 Centos + Jenkins + Gradle进行自动化构建打包将工作空间 build文件下的apk使用360多渠道打包加固上传了应用市场,结果被腾讯拒了,客服说需要v1+v2进行签名打包过程草草,手动打了签名包,使用v1+v2(手动)进行构建,上传了应用宝,临时解决了这个问题但是自动构建不能v1+v2的问题,一直都在(自以为),但是为何其他应用市场没有拒绝,难道他们都没有高版本手机测试?翻阅资料,发现有命令可以检测apk包的签名谷歌官方学习地址检查apk ..

2021-06-07 15:29:28 447

原创 Toast源码分析

常规使用Toast.makeText(mActivity, "hi", Toast.LENGTH_SHORT).show();Toast.make( public static Toast makeText(Context context, CharSequence text, @Duration int duration) { return makeText(context, null, text, duration); } public stati

2021-05-20 16:54:42 264

原创 联想ideapad 710s 黑苹果安装

准备条件1.U盘x2 不能太小 最好高速U盘1,做PE盘 大白菜http://www.winbaicai.com/ 选择装机UEFI 傻瓜式安装U盘2,做Clover启动盘https://blog.daliansky.net/黑果小兵 找合适的镜像下载 Etcher Mac启动盘安装软件 选择镜像进行安装// 安装教程地址 http://www.jisuxz.com/article/jiaocheng/38125.html黑果小兵 查找自己机型的EF...

2021-05-17 16:22:11 2317 2

原创 Android 自动化构建持续集成(十)参数化构建

Android 自动化构建持续集成(十)参数化构建前言在自动化打包过程中遇到一些新的要求,总结如下1.最好能选择不同的分支,不同的Variant2.清除Jenkins项目工作区后,local.properties需要重新配置3.不同的测试需要我们打包时是否能够动态转发给他们这就需要参数化构建,参数化构建完成后,也可以将Android的打包操作交由其他非开发者来完成配置参数VARIENTS 环境,这里配置了三个可选环境构选 参数化构建 填写一些我们想要在构建时 输入..

2021-04-01 22:36:56 327

原创 Android 自动化构建持续集成(九)遇到的问题

Android 自动化构建持续集成(九)遇到的问题问题:gradle 构建提示 no such file原因:gradle 环境变量无法引用,本来是给服务器配置的gradle全局变量,经测试在jenkin workspace下可以执行gralde build命令解决:使用 Jenkins 自带的全局工具配置Gradle 再次构建,解决了该问题系统管理-全局工具配置...

2021-03-29 21:43:30 127

原创 Android 自动化构建持续集成(八)Jenkins 任务配置即必要插件

Android 自动化构建持续集成(八)Jenkins 任务配置即必要插件必备插件# 上传apk到蒲公英插件 Upload to pgyer #Git 插件Git#Gradle 插件Gradle Plugin # SSH配置插件SSH Credentials# commit 日志转换环境变量 插件Changelog Environment Plugin配置全局变量 系统管理-系统配置-全局属性-环境变量具体参照前面的安装...

2021-03-28 23:23:38 306

原创 Android 自动化构建持续集成(七)Centos安装Jenkins

Android 自动化构建持续集成(七)Centos安装Jenkins下载jenkins.warhttps://www.jenkins.io/zh/download/ 找一个比较新的版本即可运行jenkins防止到tomcat webapps 下 重启tomcat 会自动生成jenkins文件夹,并运行jenkins,tomcat重启命令可以百度或者翻看 Android 自动化构建持续集成(三)Centos安装tomcat访问jenkins# 访问 ip...

2021-03-28 21:17:30 108 1

原创 Android 自动化构建持续集成(六)Centos安装Gradle

Android 自动化构建持续集成(六)Centos安装Gradle下载Gradle地址https://gradle.org/releases/我这里选择了一个跟项目Gralde版本一致的 5.4.1上传到Centos下指定目录我这里还是 /usr/localzip解压#解压目录到 /usr/localunzip gradle-5.4.1-all.zip配置Gradle环境变量vim /etc/profile# 文末 输入...

2021-03-28 20:31:40 124 1

原创 Android 自动化构建持续集成(五)Centos安装AndroidSdk

Android 自动化构建持续集成(四)Centos安装AndroidSdk下载 AndroidSdkManagercd /usr/local# 下载 commandlinetools wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip# 解压 压缩包 到/user/local/android-sdk 下unzip -d /usr/local/andr.

2021-03-28 20:19:03 223 1

原创 Android 自动化构建持续集成(四)Centos安装Git

Android 自动化构建持续集成(四)Centos安装Git自动化构建需要通过服务器代码获取,配合ssh的rsa,无密码拉去代码库代码就需要在服务器上进行安装GitCentos Git安装yum -y install git # 自动下载安装git的位置 /usr/libexec/git-core/# 检查安装是否正确 出现版本号即安装完成git --version# 生成服务器自己的 git ssh rsa.pub,输入下面的命令后,看到需要密码输入,连续三次

2021-03-28 20:01:24 95

原创 Android 自动化构建持续集成(三)Centos安装tomcat

Android 自动化构建持续集成(三)Centos安装tomcatAndroid自动化构建需要安装Jenkins,我这边是使用jenkins war包进行安装,需要借助tomcat这里采用下载压缩包的形式进行安装tomcattomcat官网下载 tar.gz压缩包这里下载tomcat8 linux版本 切勿下载错了https://tomcat.apache.org/download-80.cgi同样复制到 /usr/local下进行解压安装和配置操作//解压to...

2021-03-28 19:47:23 120 1

原创 Android 自动化构建持续集成(二)Centos安装JDK

Android 自动化构建持续集成(二)Centos安装JDK自动化构建是基于Jenkins,这里的Jenkins安装是基于tomcat 和JDK 需要在远程Centos我这里的Linux镜像基于阿里云 Centos,需要使用 shell工具连接到 云服务器进行软件安装配备云服务器这里使用的是 Centos 7.6 64位使用Shell工具连接登录 云服务器具体shell工具 或者 云服务器连接方式 百度即可JDK安装为了方便管理,在服务器 建了文件夹 /use...

2021-03-28 19:25:29 139 1

原创 Android 自动化构建持续集成(一)配置Git获取远程仓库地址

Android 自动化构建持续集成(一)配置Git获取远程仓库地址前言:代码的自动化构建基于Git,需要在开发电脑上通过Git进行版本控制码云/Gitlab/Github皆可Android项目密钥配置方式Android项目创建一般的密钥控制 配置在local.properties文件下,不进行Git版本管理上传,规避密钥泄露在app下build.gradle android节点下进行引用app build.gradle下android{ //引用local.prop..

2021-03-28 18:54:19 309

原创 Handler源码分析

Handler机制源码分析HandlerLooper分析MessageQueueMessageThreadLocal疑问1:主线程Looper哪里来总结Handlerhandler持有成员变量handler构造构造详细调用通过Loop.myLooper更新Looper对象发送消息相关发送消息最终指向函数最终都是调用 queue.enqueueMessage消息发送可以看出来 callback只是在 handler.dispatchMessage时进行消息回调handle

2021-03-04 15:41:03 94 1

原创 基于Jenkins Gitlab及Gradle实现Android自动化构建打包及发布到蒲公英

1.安装Jenkins 下载War包 地址http://updates.jenkins-ci.org/download/war/ 直接下载最新的即可 版本 2.147 下载tomcat 地址https://tomcat.apache.org/download-90.cgi 这里直接下载tomcat9 window...

2021-02-26 22:39:17 602

原创 2021-01-06 adb命令通过wifi连接Android设备小技巧

adb命令通过wifi连接Android设备小技巧问题电脑usb由于经常连接和拔插导致接触不良,连接手机时,adb持续连接和中断解决方案通过改用adb wifi 进行连接手机进行调试,AndroidStudio 有adb wifi 插件,经研究,涉及命令不多,并且命令更可靠,后期直接通过teriminal 进行adb命令连接常用命令adb devices 查看当前连接的设备adb tcpip 5555 设置adb端口adb connect 192.168.0.102...

2021-01-06 16:52:15 435

原创 2020-11-19 Unable to find method ‘org.gradle.api.tasks.compile.CompileOptions.setBootClasspath

Unable to find method 'org.gradle.api.tasks.compile.CompileOptions.setBootClasspath现象导入github项目报错,报错信息如下Unable to find method 'org.gradle.api.tasks.compile.CompileOptions.setBootClasspath(Ljava/lang/String;)V'.Possible causes for this unexpected.

2020-11-19 09:42:47 315

原创 最基本的 Git rebase解决分支合并 常用操作

前言Git是当前最好的版本控制软件,本文基于Android端当前项目分支管理,不一定适用于所有人和所有项目,可以进行了解以及在这基础上改造,来实现对自己项目的管理和控制为什么要进行版本控制当前开发,都是多人同时操作,对于同一部分文件和文件需要同步操作和处理,为了规避冲突进行分布式操作,再讲分布式操作进行合并,解决冲突后合到一起,整合所有人的迭代功能了解git 中rebase与merge的区别Rebase 顾名思义,Re - base ,重新以某一个分支为起点基准,此操作会先保存本分支变.

2020-10-25 16:19:21 699 1

原创 webview 常用 settings 配置

webSetting.setAllowContentAccess(true); //是否允许在WebView中访问内容URL(Content Url) 默认允许 webSetting.setAllowFileAccess(true); // 是否允许访问文件,默认允许。注意,这里只是允许或禁止对文件系统的访问 webSetting.set...

2020-02-20 12:39:48 1543

原创 jsBridge遇到的坑2 (h5页面加载js文件过多,jsBridge无效)

问题:Android 食用JsbridgeWebView与h5进行交互,h5注册JsBridge,在调用时bridge时有时候为空分析:JsBridgeWebView通过BridgeWebViewClient 进行代理 ,注入 WebViewJavascriptBridge.js文件查看源码发现注入jsBridge的js文件是在 WebViewClient的 onPageFini...

2020-02-20 12:13:29 2529

原创 总结JsBridge 使用遇到的坑(fork并打了新的release)

github地址https://github.com/lzyzsd/JsBridge常规接入方式repositories { // ... maven { url "https://jitpack.io" }}dependencies { implementation 'com.github.lzyzsd:jsbridge:1.0.4'}// ...

2020-01-14 16:51:36 1994

原创 Android pdf填充表单,预览,图片填充,水印添加

前言需求是这样的,客户需要用户登录app后录入个人信息,然后由手机端帮助将录入的信息填充到pdf,用户录入的部分图片需要填充到pdf模板的最后面,还需要给每一页pdf都加上水印,生成后给用户预览分析技术点1.pdf表单填充2.pdf水印添加3.pdf图片填充4.pdf在线预览遇到的坑或者问题1.使用itext进行填充pdf,设置了中文支持,使用pdfview预览...

2018-07-23 13:55:13 2982 2

原创 Git常用命令行总结 window系统

需要详细学习可以 参考 廖雪峰的官方网站1.简介    分布式版本控制系统, 写代码的都需要版本控制,我用SVN,现在还用GIT    所谓的分布式,实际上是区分SVN,    SVN得在局域网内有一台主机, 管理所有版本代码,这台主机必须开机,我们才能使用SVN,进行代码管理    GIT是每个人都有版本库,避免SVN主机损坏的代码丢失    GIT 一般有远程库和本地库, 本地版本库又分为暂存...

2018-05-09 16:48:27 1139

原创 listview中复用seekbar bug产生及解决方案

前言1.之前没怎么在ListView的Item条目中嵌套Seekbar, 突然有朋友遇到这样的情况,于是花点时间解决下网上找的一些blog基本没什么用,可能是我的手法不对,本篇实测有效解决问题seekbar在listview的item中时,点击定时加载进度时,滑动listview,seekbar复用的部分也会被定时器控制进行进度加载解决后的效果分析listview的常规用法,  设置适配器 适配器...

2018-03-22 17:42:09 997

原创 自定义圆形进度条 RoundProgressBar

前言1.主要用来展示进度,因为有特殊的ui要求效果代码几个自定义属性<?xml version="1.0" encoding="utf-8"?><resources> <!--圆形进度条--> <declare-styleable name="RoundProgressBar"> <!--背景圆颜色--> <attr name="roundColor

2018-02-04 23:15:12 984

转载 最完整Android Studio插件整理

现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行)。使用好Android Studio插件能大量的减少我们的工作量。1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:快捷键Alt+S也可以使用Alt+Insert选择Gson

2018-01-27 14:58:08 324 1

原创 OkGo3.0真实项目使用和二次封装

前言之前使用okhttputil,由于鸿洋的该框架并未对于回调数据进行过度处理,callback需要自定义处理,所以在项目使用时对其进行了封装,后来发现OkGo对于Callback进行了封装,自己的封装Callback和OkGo的有些相似,然后在新的项目中就使用基于OkGo二次封装的网络请求框架了,这里主要介绍OkGo的基于MVC下的二次封装和使用本文案例的项目地址 https://gi...

2018-01-09 12:02:09 18378 15

原创 android跳转其他app

需求公司有两款app需要联动,从一款app打开另一款,所以需要进行app跳转实现基本逻辑就是在一款app中点击打开另一款app时,在本机对于app进行查找和判断,查看本地是否存在,如果不存在跳转app下载页如果存在就跳转到另一个app的首个activity代码public class PackageUtil { /** * 跳转其

2018-01-05 10:54:50 631

原创 关键词搜索历史

需求商品搜索,资讯搜索等都需要搜索历史 主要就是一个流式布局 加本地存储 以及一些操作上的优化 这里来一篇自己手写的全过程效果分析1.需要一个流式布局 这里使用的是鸿洋大神写过的开源库 不怕麻烦的大家也可以自己去写一个 技术点就是计算换行 这里给出依赖 compile ‘com.hyman:flowlayout-lib:1.1.22.本地数据保存 这是我用的是最简单的sp保存 但

2017-12-26 10:56:48 992

原创 底部dialog通用弹窗

需求拍照底部弹窗选择器效果实现原理自定义dialog 加底部弹出动画 加回调step1public class ChoosePicDialog implements View.OnClickListener { Activity mActivity; /** * 下面都是弹出框选择图片的内容 * */ private Button btnPict

2017-12-25 15:35:19 270

原创 多行单选组合控件 MultiLineRadioGroup

多行单选组合控件 MultiLineRadioGroup需求实现方法如果是单行或者单列直接使用RadioGroup+RadioButton来实现 但是往往就是计划赶不上变化,ui给出的图是这种多行单选 想到的方法之一就是gridview 这里使用RecyclerView进行封装 把该处理的都处理完,这样在调用时就会方便很多step1创建一个类继承RecyclerView 实现其构造 在内

2017-12-25 15:18:33 1095 1

原创 一行代码实现版本更新

前言–每一个不停迭代的App都需要版本更新,这是刚需 版本更新可以强制或者半强制用户通过App内部更新,而不是通过应用市场最终效果在需要进行版本更新的位置调用下面的代码 context上下文为了显示弹窗或者通知栏 后面的boolean类型值 显示/不显示检查版本更新的toast 主要是在App刚打开时,检查到版本号与后台一致,那么就不需要更新APP 当然也不需要提示用

2017-12-25 12:01:39 584

原创 Android自定义RatingBar,评分控件

前言之前有使用系统的RatingBar,发现不太灵活 于是自己写一个实现效果原理原理图 首先得有两张评星的图,找ui妹子切一下 为了方便定制,我这里写死了宽高 即整个控件的高度就是星星的高度 整体控件宽高按照需求写死 我们还需要几个自定义属性,才能将整个RatingBar绘制出来 padding值 即每个星星之间的距离,我这里五颗星星是居中排版 所以在设置参数时还是需要小小的计算的

2017-09-29 09:36:37 874

原创 使用OkhttpUtils作为网络框架同时,使用Glide加载Https图片

前言公司的后台公网之前的ca认证过期了,然后发现app中部分图片加载不出来 然后对于数据来源进行分析,发现展示不出来的是https的图片 网络框架使用的是鸿洋的OkhttpUtils 2.6.3版本,进行了二次封装 图片框架使用的是Glide OkhttpUtils有对于https证书的设置讲解 这里主要提供下自己遇到的情况下的解决方案 这里的解决方案适用于自定义证书和信任所有证书过程网

2017-09-28 14:39:51 1365

仿遥控器菜单圆盘

仿遥控器菜单圆盘

2017-07-22

基于鸿洋okhttputils 封装数据 bean和callback 回调

对okhttputils回调封装

2017-05-27

Android App框架设计 基类BaseActivity

一个BaseActivity基类 封装了不同网络访问状态下界面切换 toolbar标准 以及DataBinding实现无需findViewbyid 和Butterknife超长注解成员变量 Activity管理类

2017-05-25

空空如也

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

TA关注的人

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