自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梁超杰

不积跬步无以至千里

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

原创 聊聊 Looper中的 用户态、内核态、IO多路复用

做Android开发的小伙伴一定都熟悉Android的消息循环机制(Looper MessageQueue Handler), 相信也一定知道Looper是一个死循环,循环中 MessageQueue 不停地去拿消息处理,如果拿不到就阻塞当前主线程执行,下面重温一下这块的代码Looper.javapublic static void loop() { //... 省略无关代码 for (;;) { // 这里我把官方注释放这里了,next方法执行过程中可能会发生阻塞

2021-08-08 23:15:25 465

原创 Android Studio中如何全局搜索字节码中的内容?

文章目录1 我们的使用痛点是什么?2 我们为什么需要查看class文件中的内容呢?3 写代码把aar拷贝到目标文件夹中4 命令行查看具体的内容1 我们的使用痛点是什么?当我们使用Android Studio 搜索 MainActivity 的时候可以查到内容,好像看起来很方便?但是如果关键字在class文件中,那么就搜索不到了。2 我们为什么需要查看class文件中的内容呢?我们App上线之后发现用户使用流量猛增,使用各种统计手段发现程序大量创建一个名为 “xxx” (因为避免涉密不具体贴出

2021-06-26 22:08:53 1342 3

原创 操作系统——精髓与设计原理(第九版)

一直觉得自己计算机基础薄弱,买了本书看,打打基础, 这篇博客不是把书中的内容做一个总结,而是分享自己看书过程中的心得和体会。文章目录1 芯片?处理器?CPU?1 芯片?处理器?CPU?

2021-06-20 18:06:21 4644 1

原创 Android 居中圆角矩形 Loading框

相信项目中大家多多少少都会用到Loading框,用来优化一些体验网上找了很多demo但是 要么有的太复杂,要么有的不满意,最后还是自己决定写一个吧。文章目录1 UI效果2 源代码2.1 MsLoadingDialog.java2.2 MainActivity.java2.3 R.style.LoadingDialog2.4 icon_loading_ing.png icon_loading_success.png1 UI效果2 源代码2.1 MsLoadingDialog.javapu

2021-05-15 17:10:12 615 4

原创 终于拿到驾照啦~

文章目录1 时间线梳理2 科目一3 科目二4 科目三外路5 科目三理论1 时间线梳理2021年3月6日 北京东方时尚驾校报名 6600假日班 C1手动挡2021年3月16日 科目一 99分通过2021年4月19日 科目二 100分通过2021年4月27日 科目三外路95分 科目三理论 94分 拿证2 科目一我觉得科一对于程序员群体来说比较简单,就是刷题刷题,而且你刷的越多,看的越认真,基本上科目三理论就不用刷题了,我科目一题目全部刷了一遍,科目三理

2021-04-28 22:57:17 733 2

原创 Android 根据账号和密码自动连接 WIFI (兼容Android 10)

源码地址在这里在这里!!!!!面向谷歌搜索了很多博客,基本上都是失效的,只要你的compileSdkVersion版本高于28在Android 10设备上就无法连接wifi,虽然提示你是连接成功了但是实际上信号一直不可用。解决办法目前只有这个: compileSdkVersion 28 buildToolsVersion "28.0.x" //可以是28.0.2 或者其他的 28下面的都可以看下如何使用package com.hello.wifi;import android.os.Bu

2021-04-15 22:29:03 5235 8

原创 Mac Terminal 美化

安装 oh my zsh 可能需要网络特殊处理安装 iTerm2

2021-03-15 22:45:54 730 2

原创 最新实测可用的获取Android悬浮窗权限代码

<uses-permission-sdk-23 android:name="android.permission.SYSTEM_ALERT_WINDOW"/><uses-permission-sdk-23 android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/> public boolean checkPermission(Activity activity) { final int versio

2021-03-13 10:43:35 4106 1

原创 他山之石(1)——Properties的妙用

Properties文件,每一行前面表示Key 中间使用=或者: 分割 后面表示value在集成 百度TTS语音合成的时候发现Properties居然还可以这么用,以后再写三方的appid appKey 啥的就太舒服了,再也不用写一些常量类了。接下来看看人家百度是怎么妙用的?如何获取这些appId appKey applicationId啥的呢?public class Auth { private static volatile Auth ourInstance; pri.

2021-01-20 22:28:40 242

原创 自定义编译注解器学习第一篇——搭建一个可注解的工程

文末有demo 代码链接 !!!文章目录1 背景2 步骤2.1 新建一个Java Library 取名annotation2.2 Json类定义我们的注解2.3 新建一个Java Library 取名compiler2.4 项目切到project视图下3 demo 地址1 背景不知道你有没有想过以下问题:ButterKnife为啥可以使用注解就可以直接帮我们生成对应的代码?class ExampleActivity extends Activity { @BindView(R.id.us.

2021-01-07 23:05:06 197

原创 常用 adb 命令整理

【代码】常用 adb 命令整理。

2020-12-31 17:44:16 225

原创 GH001: Large files detected. You may want to try Git Large File Storage

liangchaojie@192 JieAnnotation % git push -f -u origin master运行之后报错如下,原因是某个文件超过了100MEnumerating objects: 90, done.Counting objects: 100% (90/90), done.Delta compression using up to 12 threadsCompressing objects: 100% (61/61), done.Writing objects:

2020-12-29 09:04:59 666

原创 Android Studio使用本地Gradle编译

没有被gradle逼疯的Andoider不是好程序员,在Studio中下载 gradle 速度真的是令人堪忧,但是一旦你使用了迅雷或者其他下载软件下载gradle 其实速度是很快的!!所以我就灵机一动:下载好gradle 直接放在studio里面用不就可以啦?哇塞,直接秒速编译有没有?...

2020-12-28 22:06:52 961 1

原创 git tag 常用操作

文章目录1 创建tag2 查找tag3 展示tag对应的commit4 将本地tag上传到远端5 删除tag1 创建taggit tag v1.52 查找taggit tag -l "v1.5*"3 展示tag对应的commitgit show v1.54 将本地tag上传到远端git push origin v1.55 删除taggit tag -d v1.5 //删除本地taggit push origin --delete v1.5 //删除远端tag...

2020-12-12 16:38:10 163

原创 Flutter学习第七篇之Dart语言学习

wiki

2020-11-13 22:58:14 163

原创 上架应用宝给空白包签名

应用宝给空白包签名格式如下:jarsigner -verbose -keystore jks地址 -signedjar 已签名的apk 应用宝空白apk alias名称举个例子% jarsigner -verbose -keystore /Users/gerry/Desktop/demo/Ecode/app/cxwlw.jks -signedjar /Users/gerry/Desktop/app-release.apk /Users/gerry/Desktop/tap_unsign.apk

2020-10-13 14:59:16 509

原创 聊聊文件描述符FileDescriptor

做Android开发多年,之前从来没有听过FD这个概念,线上遇到了一个crash直接教我做人了。FileDescriptor Android官方介绍Instances of the file descriptor class serve as an opaque handle to the underlying machine-specific structure representing an open file, an open socket, or another source or sink

2020-09-12 23:53:18 2422

原创 Flutter实战——Map Json Object对象转换

最近在写Flutter代码,发现iOS侧使用的是字典类型(Map),而我们Android使用的是对象类型。数据类型完全不同,这可咋整?于是研究了一下Map相关的Json转换,希望能帮助到大家本篇Gson使用的是最新的版本:Gson Githubimplementation 'com.google.code.gson:gson:2.8.6'文章目录1 只涉及基本数据类型Map转json json转Map ——Map数据保持不变。2 引用类型2.1 简单的对象Map转Json Json转M.

2020-08-12 11:17:32 5351

原创 LeakCanary踩坑

LeakCanary使用官网2020-08-03 20:17:38.046 2561-2561/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.yixuepai, PID: 2561 java.lang.Error: LeakCanary in non-debuggable build LeakCanary should only be used in debug builds, but this APK is

2020-08-03 20:34:41 1102

原创 无需Root手机导出系统 so库

我们排查jni crash的时候非常头痛,因为崩溃的地方都是so文件,我们必须要导出来系统的so文件才可以查出来到底是哪一行代码报错导致的问题。导出system/lib里面的so文件其实很简单,无需Root手机,只需执行下面的四条命令就可以了。先看张图,然后再敲代码会更香这里的ls是用来展示所有的so文件adb shellcd /system/libexit adb pull /system/lib/libc.so /Users/liangchaojie/Desktop/so

2020-07-21 22:01:44 1141

原创 Git批量删除本地和远程分支

在使用语句之前请确认你理解了语句的意思,否则语句执行之后如果错误删除掉你的分支而本人不用负未告知的责任,因为我已经废话半天在这说这件事了。1 假设现在远程仓库存在以下的分支:oirigin/masteroirigin/master_1oirigin/1_masteroirigin/developoirigin/develop_xoirigin/x_developoirigin/feature2 批量删除远程分支:-v 的意思是保留分支git branch -r| grep -v .

2020-07-20 19:02:45 3783 7

原创 Android开发中ANR的定位和解决——无需Root手机

如果程序输出下方的log或者弹出程序无响应就表示遇到了ANR020-07-11 23:18:19.131 1232-28781/? E/ActivityManager: ANR in com.test (com.test/.MainActivity) PID: 28502 Reason: Input dispatching timed out (Waiting to send non-key event because the touched window has not finished

2020-07-11 23:34:34 1911 2

原创 娱乐视频下载

视频下载神器

2020-07-03 16:21:56 333

原创 Flutter学习第六篇Native Dart通信

文章目录1 Native调用Flutter代码2 Flutter调用Native代码1 Native调用Flutter代码Flutter学习第六篇之基于flutter_boost实现Native Flutter通信2 Flutter调用Native代码关于Flutter调用Native插件其实Flutter官方是支持的,而且我也建议大家使用下面这种方式,可以把插件单独从flutter项目中解耦合。Developing packages & plugins 官方wikiflutter

2020-07-03 16:19:08 592

原创 Mac搭建本地Maven仓库For Android Studio

本地搭建Maven仓库并且完成本地依赖

2020-06-28 22:53:56 1246

原创 Waiting for another flutter command to release the startup lock...

打开Teriminal窗口输入: killall -9 dart解决。

2020-06-12 13:43:04 293

原创 好久没有自定义View了,复习复习~

package com.test.views;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.Rect;import android.graphics.RectF;import androi.

2020-06-08 17:52:02 254

原创 基于 Android Q 10.0 系统 makeVisible源码解析

这篇文章需要搭配这篇博客看更有味道基于 Android Q 10.0 系统 Activity启动流程探索,读了本篇你可以明白为什么onCreate方法中的view宽高是0.文章目录1 ResumeActivityItem.java2 ActivityThread.java3 Activity.java3.1 Activity.java3.2 Window.java4 WindowManagerImpl.java5 WindowManagerGlobal.java6 ViewRootImpl.java .

2020-06-08 17:26:12 740

原创 基于 Android Q 10.0 系统 setContentView源码解析

setContentView源码解析文章目录1 MainActivity.java2 AppCompatActivity.java3 AppCompatDelegate.java4 AppCompatDelegateImpl.java第一阶段4.1 Activity.java4.2 ActivityThread.java4.3 PhoneWindow.java第二阶段4.4 LayoutInflater.java4.5 Activity.java ---> mPrivateFactory4.6 L

2020-06-01 18:10:16 1051

原创 基于 Android Q 10.0 系统 LayoutInflater源码解析

文章目录1 Context.java2 Activity.java3 ContextThemeWrapper.java4 ContextWrapper.javaBack 2 Activity.java5 ActivityThread.javaBack 3 ContextThemeWrapper.java6 ContextImpl.java7 SystemServiceRegistry.javaBack 3 ContextThemeWrapper.java8 PhoneLayoutInflater.java

2020-05-30 00:20:47 318

原创 基于 Android Q 10.0 系统 Activity启动流程探索

基于 Android Q 10.0 系统 Activity启动流程探索文章目录1 MainActivity.java2 Activity.java3 Instrumentation.java4 ActivityTaskManager.java5 ActivityTaskManagerService.java6 ActivityStarter.java7 RootActivityContainer.java8 ActivityStack.java9 ActivityStackSupervisor.

2020-05-25 15:02:37 692

原创 Aspectjx的集成和使用

终于有时间写一篇hook的文章了。反射和Hook的相同点和不同点是什么?都是修改字节码,但是反射是调用字节码而Hook是重构字节码说起来有点抽象,举个例子:美国男篮和中国男篮举行篮球赛,每个队伍都有1,2,3,4,5号队员。中国1号队员又不认识美国1号队员,那么是怎么盯防1号队员的呢?对的,会有一个1号球衣,他只要看球衣就行了,美国人长得都一样不用仔细看脸,美国队员也是这么盯防中国队的中国队觉得美国队实力很强,比赛之前排兵布阵将12和45队员位置互换,然后组成45312阵容和美国12345阵

2020-05-18 16:45:47 2492

原创 Gradle的一个奇淫巧技

日常开发中我总希望Gradle里面配置一下,我们的java代码就会自动修改逻辑,简称一劳永逸这么说来很抽象,我举几个例子大家就明白了gradle文件中设置不使用flutter,java代码就会自动使用Native页面gradle文件中设置使用flutter,java代码就会自动使用Flutter页面把项目地址奉上: GradleJavaTest Demo关键代码浏览:test.gradledef targetFile = new File("./app/src/main/assets.

2020-05-12 16:56:45 304

原创 Flutter学习第五篇之集成flutter_boost

简单集成的demo

2020-05-11 17:54:15 1915 3

原创 Flutter学习第四篇之Android如何打开Flutter页面

在上一篇Flutter学习第三篇之Android Flutter混合编译博客中我介绍了Android和Flutter如何实现混合编译,我们这篇博客就要学习怎么实现Android页面打开一个Flutter页面。老规矩,我们先要把官方教程摆出来 英文官网 Native Flutter页面路由跳转,官方思路是有两种:Flutter页面当成一个新的ActivityFlutter页面当成Fragme...

2020-05-07 13:55:57 3134 3

原创 Flutter学习第三篇之Android Flutter混合编译

1 为什么需要混合编译?Flutter只是一个用来解决跨平台的UI框架,最终还是要使用原生平台进行绘制,对于大部分和系统API无关的页面都可以使用Flutter处理,但是有一些获取系统信息的页面比如某个页面获取Android是否打开了通知栏权限?获取手机电池电量?等等的需求就得需要原生支持了。所以现在跨平台的主流方式是:Native+Flutter混编,Native就是原生平台的意思,可以...

2020-04-29 16:25:32 1636

原创 请求读写权限的误区

在我刚开始学习Android的时候,老师就告诉我们文件读写一定要在清单文件中申请读写权限当时Android 6.0系统刚好增加了运行时权限,所以老师每次读写文件都会把targetSdkVersion从23降低到22,避免增加代码量动态申请权限。当时年轻呀,咱也不敢说,咱也不敢问,咱也没有多想其他的就这样就当成铁律记了多年,直到最近我写一个demo居然不申请权限也可以读写文件——毁了我的三...

2020-04-28 13:07:09 478

原创 Flutter学习第二篇之Android Studio配置

经过上一篇Flutter学习第一篇之环境搭建学习,我们已经配置了环境,但是距离创建Flutter项目我们还需要对Android Studio进行一些配置。安装Flutter Plugins安装Android Flutter 相关Tools安装Flutter插件的时候会询问你是否安装Dart插件,你要选择同意哈,Flutter本来就是Dart语言支持的。如果在上一篇博客中遇到Andr...

2020-04-26 14:43:51 434

原创 Flutter学习第一篇之Mac环境搭建

1 本篇文章建立在Mac电脑开发的基础上,如果使用Windows系统开发的同学可以去看Windows安装教程2 目标读者是对跨平台开发感兴趣Android开发者Flutter中文网的文档不香吗?编程的第一步是要搭建环境变量,犹记得当初学习Java配置环境变量那个恶心呀,对于配置过的人觉得好简单,但是对于新手开发和初学者来说就是很困难,这就是知识的诅咒——你理解一件事之后你就很难明白...

2020-04-26 13:55:49 419

原创 剑已配好,我们江湖见

从去年的12月24日开始,我的博客销声匿迹了一段时间,直到3月12日才继续更新了博客。这段时间我都干嘛去了呢?我来梳理一条时间线:1月15日 部门技术负责人通知我部门效益不好,人员优化调整,我被优化1月16日 拿到对应的赔偿和离职证明,离开了这家公司(这天也正好是我转正那一天)1月22日 投投简历,晚上坐高铁回到老家疫情开始大规模扩散,春假延期,村委会加紧人员流动管理,在家享受假...

2020-04-20 17:20:52 352 4

channelApk.zip

下载这个channelApk 文件夹,然后将release apk拷贝进src_apk文件下并命名,随后执行buildChannels.sh脚本,等待一会就可以看到output中就是你的渠道包文件啦。

2019-08-13

Android实现快速发送电子邮件

最近有朋友有需求是通过apk发送邮件,我心想这怎么可以实现?然后就研究了一番,最后得出结论是可行的! 确实可以自己的手机上定义主题和内容或者附件,然后发送给对应的邮箱!详细步骤倾听我一一道来

2018-10-31

android扫码登录

Android 快速实现扫描识别二维码(即扫码登录功能) 扫码登录现在很流行,淘宝,京东,熊猫直播各大网站都有扫码登录功能,其实呢对于客户端来说扫码登录很简单,因为难点都集中在了前端身上,我简单讲下扫码登录的流程:

2018-10-27

通讯录字母列表索引

相信大家对这个列表字母索引已经不陌生了,在很多app中也随处可见,像没团的城市地址选择,微信联系人列表,手机通讯录…等等。既然是个这么nb这么实用的功能我们怎么能不Get到来呢,下面就让我们一起造一个出来吧

2018-02-26

CheckUtils

判断用户输入的字符串是不是身份证号,邮编号,手机号,银行卡号和日期

2016-12-30

空空如也

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

TA关注的人

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