自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android GB∕T 19056-2021 汽车行驶记录仪-定位性能测试

Android GB∕T 19056-2021 汽车行驶记录仪-定位性能测试 (android版本)

2022-12-22 21:11:43 1108 3

原创 Android 编译IJKPlayer源码

目前在做音视频相关的工作,在项目中用到了播放相关的问题,使用的框架是GSYVideoPlayer,使用它的原因是可以很方便的切换播放器内核,系统内核、IJKPlayer内核亦或是exo2Player内核,视频播放的格式不统一,使用这种方式能够更大程度的方便开发工作。

2022-04-27 15:00:17 1893

原创 GSYVideoPlayer 播放m3u8格式视频遇到的坑

GSYVideoPlayer 播放m3u8格式视频遇到的坑,ijkplayer内核会对重定向的地址做解析

2022-04-07 10:13:27 3813

原创 Android 使用singleInstance启动Activity遇到的坑

Android 使用singleInstance启动Activity遇到的坑

2022-02-18 17:38:31 2194

原创 安卓逆向笔记-IDA动态调试so

年底了,在进行技术梳理,发现对于动态调试so方面还不太会,每年都说要学习,结果两年了还没学会,近期也是进行了补课,做一个笔记记录一下。

2022-01-12 16:55:46 4034

原创 Kotlin 基础学习笔记(三)

1. 面向对象1.1 创建一个类 + 构造方法说明class TestCons constructor() {}kotlin采用constructor 关键字来代表构造方法,其中的 constructor 可以省略,但是如果加上权限修饰符就不能省略了:class TestCons constructor() {}// 有参构造class TestCons constructor(age:Int, name:String) {}// 如果加上权限 private 修饰...

2021-08-06 18:05:30 385

原创 Kotlin 基础学习笔记(二)

1.函数 和 函数表达式1.1 函数 fun add(x : Int, y : Int) : Int { return x + y }==>如果函数语句只有一句,变形:fun add(x: Int, y: Int): Int = x + y1.2 函数表达式==>将一个函数表达式赋值给一个变量,然后调用: // 将一个函数表达式 赋 给了i var i = { x: Int, y: Int -> x + y } // 调用声明好的 函数表达式.

2021-07-26 17:01:16 179

原创 Kotlin 基础学习笔记(一)

1. Kotlin 语言特点var 类型推断 var 显示指定数据类型 val 声明常量2.Kotlin 函数加强2.1 函数格式 fun 函数名(参数名:参数类型):返回值类型 { }3.字符串模板 fun writeDairy(placeName: String): String { var story = """ 你好,我要去 ${placeName...

2021-07-22 10:31:59 408 2

原创 Android 关于模拟点击和Hook框架的杂谈

1. 背景 就跟我们以前玩页游挂机一样,Android端也有游戏,而且样式繁多,如果重复的操作每次都要自己重复一遍操作,那不得烦死,所以就有了这篇文章,本文仅探讨方案,大家可以尝试。而且现在的模拟器(比如MuMu,Nox)都提供录制脚本,然后在重复执行的功能,也很方便。2. 技术选型 从技术这方便看,大概需要三种技术,Android的模拟点击技术、Android设备支撑以及便于切换设备参数时用到的Hook框架。2.1Android的模拟点击技术2.1.1 使用模拟器自带的录...

2021-07-01 10:30:09 915

原创 Android tv应用 Recylerview 删除元素,焦点乱跳

1. 背景 开发tv应用时,需要用到焦点,如果此时在Recylerview中删除元素,然后刷新列表,会导致焦点跳出Recylerview之外

2021-06-17 20:03:20 253 1

原创 Android 优化 透明Activity展示loading关闭时闪烁

1. 背景 之前设计了一个支付SDK,因为需要展示loading以及支付页面,也为了不需要用户传入Activity引用,设计了一个透明得Activity,但是发现在实践得时候,关闭这个Activity会有闪烁一下的问题。本来觉得并不是什么大问题,产品硬是要说这是个bug,这是强行让我涨姿势啊,太难了,想了想还是把手中的扳????给放下了。2. 现实2.1 Activity采用对话框样式 <style name="ActivityDialogStyle" parent="@an

2021-05-19 15:19:28 955 1

原创 Android TV使用gsyVideoPlayer快进操作视频会回退

1. 背景 今天TV产品优化,发现一个难以修改的问题,使用gsyVideoPlayer的时候,切换的是系统内核播放视频,然后遥控器在控制快进快退的时候会有进度条回退的问题,这对用户就不友好了啊。2. 原因探究 调查了之后发现,是因为关键帧的问题,快进的时候是按照视频的关键帧来进行快进的,如果视频背压缩的过于严重会导致视频的关键帧比较少,那么就会出现以下这种情况:现在播放到8秒,你要快进到18秒,但是视频的关键帧在第15秒,那么进度条就会从18退到15,因为进度条是按照真实的视频进...

2021-05-19 12:03:41 2319 4

原创 Android 我的第一个Jetpack Compose应用

目录1. 背景2. Jetpack Compose 是什么?3. 开始前的准备4. 创建DEMO4.1 New Project4.2 项目配置5. 项目整体变化5.1 布局部分5.2依赖的变化5.3包体大小的变化5.4 代码编写的变化6. 遇到的问题6.1 EditText 数据不会变化6.2 导入其他人写的一个项目,在mumu模拟器报错 "Snapshot is not open"7. 资料1. 背景 最近看了很多郭神公众号推荐...

2021-03-23 10:54:48 4118 13

原创 Android ImageView.setImageResource 出现 栈溢出问题 StackOverflowError

1. 背景 今天在测试应用的时候出现一个问题,分析之后,我觉得特别奇怪,可以看下面的报错:E/AndroidRuntime(29778): java.lang.StackOverflowErrorE/AndroidRuntime(29778): at android.graphics.drawable.BitmapDrawable.computeBitmapSize(BitmapDrawable.java:189)E/AndroidRuntime(29778): at a...

2021-03-18 10:34:49 699

原创 Android 自定义View之MarqueeText,实现跑马灯效果

1. 背景 需要做一个跑马灯效果的文字展示,本方案更适用于开发机顶盒应用的同学们。2. 需求 2.1 展示书籍的页面,文字过多的时候需要折叠 2.2 当焦点在此书籍上的时候,需要将折叠的文字滚动起来3. 需求剖析 3.1 正常情况下使用跑马灯,只需要设置Textview的以下属性即可android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:scr...

2021-02-23 20:14:46 1620 5

原创 Android 面试笔记之Binder详解

Android 面试笔记之Binder详解Binder 八问1.为什么面试要问Biner?1.1 Binder是什么?Activity, Service等组件都需要和AMS 进行交互,这些跨进程的通信都是 通过 Binder来完成的。三种角度看待Binder: 机制:一种跨进程通信的机制 驱动:虚拟物理设备驱动 应用层:Binder是一个能发起通信的Java类1.2 为什么要使用多进程?1.2.1 因为虚拟机分配给各个进程的内存是有限制的,可以突破 内存限制为什么现在的机器

2020-09-23 10:33:48 1272

原创 Android 面试笔记之Handler详解

Android 面试之Handler详解Handler八个问题1:一个线程有几个Handler?可以有多个Handler 发送消息2:一个线程有几个Looper?如何保证?2.1:只能有一个,在创建Handler的时候指定Looper,该Looper创建的线程,就是处理消息的线程2.2:如何保证?每一个线程 都有一个ThreadLocal ( 运用了HashMap),用来保存 线程的 状态,标志位等 上下文环境 (大量的key-value 键值对)如何保证一个key,只有一个value

2020-09-23 10:11:38 471 1

原创 Android 适配7.0及以上的安装更新

近期准备给APP增加一个下载更新的功能,原以为很简单,自己测试也通过了,但是发给测试后,发现apk下载完成,安装的页面弹不出来,郁闷了。 原来的方法是这么写的: /** * android1.x-6.x * * @param path 文件的路径 */ public void startInstall(Context context, String path) { Intent install = new Inte...

2020-06-29 10:27:50 378

原创 Android 7.0 之 FileProvider运用:拍照获取头像并设置

FileProvider 是android 7.0 之后才有的一个东西,其目的也是加强管理碎片化严重的android文件夹,避免其内的应用随意使用手机的内存。 使用一个例子,拍照获取图片,并设置到ImageView中: 把大象放到冰箱需要几个步骤? 步骤一:打开相机:// 相机public static final int CAMERA_REQUEST_CODE = 1004;SimpleDateFormat simpleDateFormat = new Si...

2020-05-14 18:12:46 1977

原创 Android Fragment 优化与切换

Fragment三个包 1.android.app.Fragment 2.android.app.v4.Fragment 向下兼容 3.androidx.fragment.app.FragmentFragment 关键类 1.FragmentManager 碎片化的管理类 2.FragmentTransation 操作Fragment做一些事务FragMent 切换方式 1.replace 会重新走生命周期 用的较少 2.show/...

2020-05-13 15:41:18 517

原创 Android APP启动优化知识点

APP启动优化启动类型 1.冷启动 第一次开始 或是 重装启动 2.热启动 第二次或之后启动 3.温启动 退到后台,由于某些原因被杀死,但整体数据还保存Shell命令 检测启动时间 1. shell命令 adb shell am start -S -W [packageName]/[packageName.MainActivity] 1. thisTime 最后一个Act的启动耗时 2. TotalTime 启动一连串...

2020-05-13 11:22:36 205

原创 Android 封装Okhttp3 + RxJava 工具类(包含下载)

参考链接:https://blog.csdn.net/fxjzzyo/article/details/78761373?utm_source=blogxgwz1implementation 'com.squareup.okhttp3:okhttp:3.12.0'同步请求:需要自己处理,UI异步的更新,以及Thread的创建package com.liboshuai.framework.manager;import android.content.Context;import.

2020-05-11 15:59:29 504

原创 Android adb安装后提示INSTALL_FAILED_TEST_ONLY

参考:https://blog.csdn.net/vfush/article/details/80320596原因:Android Studio 3.0会在debug apk的manifest文件application标签里自动添加 android:testOnly="true"解决:将此标签去掉即可,或者改为false

2020-05-08 18:11:42 190

原创 Android 笔记 沉浸式状态栏设置及效果说明

使用:implementation 'com.gyf.immersionbar:immersionbar:3.0.0'常用方法:ImmersionBar.with(this) //.barColor(R.color.color_tab_normal) // 设置导航栏背景色 //.hideBar(BarHide.FLAG_HIDE_BAR) //隐藏状...

2020-05-08 17:18:41 605

原创 Android 倒计时(支持小时,分钟)

参考:https://www.jianshu.com/p/4e5c0d58c90c1.背景 需要做一个考试时间的倒计时,自己也有想法,但还是不想重复造轮子,直到发现除了timer之外,android还有一个CountDownTimer。2.效果图3.代码package mvp.study.skymobile.com.testandroidmethod.vie...

2020-04-21 18:18:25 1662 3

原创 Android 常用时间工具类总结

1.背景 总会遇到各种各样的时间计算,或是时间millis与String的转换,或是将播放音乐,视频的时长转换成字符串的操作,至今也没找到一个称心如意的工具类,所以记录一下自己常用的,避免以后无头苍蝇一样的乱找。2.代码 这是我以下固定格式的DateFormat,以及固定的常量private static final DateFormat DEFAULT_FORMAT...

2020-04-20 11:49:08 600

原创 Android 设置TabLayout的下划线宽度

1.背景 由于最近需要实现一个功能,需要用到TabLayout作为标题,切换标题时,底下填充不同的frament。但是UI设计对下划线有要求,需要设置下划线的宽度和高度。最终实现的效果图如下:2.TabLayout介绍 TabLayout大概分为三个时代,刚开始的时候: 2.1 TabLayout继承自LinearLayout,在android.widget包...

2020-04-17 17:12:24 1330

原创 Android 图片压缩并保存的方法

参考: 1.https://blog.csdn.net/pbm863521/article/details/74391787 2.https://www.jianshu.com/p/871f0c1f00061.背景: 最近一个项目的开发,需要用到相机拍照,裁剪,保存,上传图片到七牛云的操作,并在上传的过程中遇到了图片过大,服务器返回溢出的错误,难搞哦。在其中发现,...

2020-04-16 18:20:31 950

原创 Android Toast改变文字大小颜色和显示位置

参考:https://www.cnblogs.com/dmrbell/p/11647945.html不多说直接上代码,测试可用// 修改Toast弹出的字体大小 Toast mToast = Toast.makeText(getApplicationContext(), getResources().getString(R.string.pay_succ), ...

2020-02-27 09:23:42 2866

原创 Android studio 打包报错:Could not find groovy-all.jar (org.codehaus.groovy:groovy-all:2.4.12)

在app的build.gradle中的android标签添加如下代码块lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the b...

2019-11-18 15:22:11 1008 2

原创 一个Android开发对JVM的认识

近期,博主的公司进行了一次JVM的分享,由于篇幅太大,分成了两次,每次差不多一个半小时,我一个Android开发,其实对于JVM的认识还处于小白,虽然那本《深入理解JVM》也看过很多次,但是每次都以失败告北,我想着无聊也是无聊,不如写一篇自己对JVM的认识,由于自己对手写比较钟爱,所以会以图片的形式将笔记上传。 我的理解方式比较奇怪,每次以问题的方式开始,会比较让我有求知欲。这里...

2019-10-18 16:38:45 500

原创 Android开发之ProgressBar及其style样式的使用

背景 很多时候要用到loading的展示,近期发现自己对于进度条的知识掌握的不是那么牢固,所以来进行一次复习。众所周知,进度条就是展示进度的;或者用来等待某些事件的完成,例如加载资源,下载资源等等。那么一个进度条应该如何写呢。基本使用 首先在layout中定义控件<ProgressBar android:id="@+id/ver_bann...

2019-09-11 15:57:23 3714

原创 使用AndroidStudio进行SDK开发

SDK就是软件开发工具包(SoftwareDevelopmentKit)的缩写,在开发app的过程中我们肯定不可避免的要用到第三方的开源工具包,比如熟悉的recyclerview、support-v4、okhttp等等。在AndroidStudio中我们可以使用这种:implementation 'com.android.support:recyclerview-v7:27.1....

2019-09-10 10:49:08 2102

原创 Android 实现应用程序前台和后台之间转换的监听的两种

android中会使用很多监听本应用是处于前台还是后台的场景,接下来我介绍两种,不需要权限申请的。第一种:使用ActivityManager,获取手机应用的所有进程,筛选出自己本应用的,根据importance来判断是否处于后台。/** * 判断当前程序是否在前台 * * @param context * @return */ public static bool...

2019-08-02 09:46:42 797

原创 xposed目前不兼容Android SDK版本 22 或处理器(armeadi-v7a)

最近测试,xposed,发现有出现: xposed目前不兼容Android SDK版本 22 或处理器(armeadi-v7a) 这种错误。 可尝试使用3.x版本的Installer

2019-07-31 15:49:50 9159

原创 Android项目混淆问题 Unknown verification type [48] in stack map frame

近期在打包Android工程的时候遇到了混淆问题,不混淆的情况下怎么样都是好的,混淆时候打包就有问题,报错如下:[2018-09-19 13:14:49 - zplugin] Caused by: java.lang.RuntimeException: Unknown verification type [48] in stack map frame[2018-09-19 13:14:49...

2018-09-25 16:50:47 408

原创 Androidstudio NDK Gradle3.0 以上使用外部工具的so编译之旅

近期在学习so相关的编程,发现每次写了新方法之后,还需要到相对应的java文件目录下执行一些java脚本,帮助我们生成在jni中会用到的一些C++的头文件。后来觉得每次这么写太麻烦,有没有简单点的处理办法呢,后来发现AndroidStudio有一个叫External Tools的东西,可以帮助我们实现。 1.首先,如果想要学习NDK的话,那么相关的NDK的环境肯定要先配置好的。如果你...

2018-07-15 16:36:22 736 2

原创 TransactionTooLargeException导致的Package manager has died源码分析

问题:try {        pakinfo = pm.getPackageInfo("com.tencent.mm", PackageManager.GET_ACTIVITIES); PLog.i("isWXCanPay pakinfo = " + pakinfo); if (pakinfo != null) { versionName = pakinfo.versionName.t...

2018-05-03 11:54:26 524

原创 算法导论 中文 第三版 第2-25章部分课后习题答案

由于最近在学习算法相关的东西,发现课后的习题没有答案,给我造成很大困扰,以下分享了从网上找到的答案链接: https://pan.baidu.com/s/1Vy2LjDxTOgYz5gdc0Cjrzg 密码: nijb...

2018-04-20 09:36:25 17012 7

原创 修改TortoiseSVN设置比较工具为BeyondCompare

    TortoiseSVN原有的比较工具,比较单一简单,在有些时候不那么容易看出来不同,特别是进行大量的文件对比时,尤为麻烦,今天发现,其实TortoiseSVN给我们提供了使用外部比较工具的接口,那么下面我们看下具体的设置。    首先进入TortoiseSVN的设置界面        接下来进入Diff Viewer的设置页面,将比较工具设置为外部的即可,如下图        使用后的效果...

2018-04-11 14:28:08 5257

ToastUtil.java

封装好的Toast工具类,支持字符串id,字符串以及指定Toast位置,方便快捷,用到的应该就这些了,改变文字大小的可以去看我的博客

2020-04-17

Android开发之ProgressBar及其style样式的使用.zip

Android开发之ProgressBar及其style样式的使用一些相关的代码,由于是用kotlin来实现的,所以可能会有不适应,不过代码大同小异,问题不大

2019-09-11

ForegroundCallbacks.java

监听前后台应用是我们在移动开发中经常会用到的技术,谨以此跟大家做交流,谢谢

2019-08-02

获取本地相册Demo

获取本地相册的Demo,进入页面直接展示相册中的内容,可再次基础上进行二次开发,很好用

2018-09-26

VC6CN开发工具

VC6.0,是微软的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C++.NET(Visual C++7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。

2018-07-25

空空如也

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

TA关注的人

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