自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kururunga的博客

Android+Java EE 开发者

  • 博客(332)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android关于写代码的思考

1.匿名内部类如果多的话统一处理,不需要单独设置监听,少的话可以直接设置点击,如点击事件: @Override public void onClick(View v) { switch (v.getId()) { case R.id.iv_go_settings: dealGoSettingsClick(); break; } }2.try…catch精确到真正

2021-06-18 15:48:20 114 1

原创 OBS Studio安装教程以及录制等详细配置

之前录制视频分别用了拍大师,爱剪辑,EV录屏和嗨格式录制大师,这几个要么导出收费,要么各种水印,讲道理,难道没一款免费的软件?有,Obs studio各大主播都在用的串流和录屏软件。1.下载地址如下https://obsproject.com/zh-cn/download但是这个软件下载速度非常慢,还会经常下载失败,我们点击官网下面这个,使用种子下载,然后就能在迅雷很快速的下载了2.下载完可能会提示环境缺少Microsoft Visual C++ 2019 Redistributable Pac

2021-02-15 01:37:42 9679 1

原创 关于git经常会碰到的几个场景分析

这样就将远程分支 origin/develop 的代码成功合并到了本地分支 B,并且可以选择将更改推送到远程分支 origin/B。1.把其他远程分支代码同步合并到本地分支,比如:git将另一个远程分支origin/develop代码合入我现在的本地分支B,本地分支对应的远程分支是origin/b。完成以上步骤后,你的本地分支A将被合并到分支B,并将更改推送到远程仓库。首先,确保你的本地仓库和远程仓库是同步的。2.解决冲突,git推送到远程分支,再pr到另一个分支的时候发生了冲突 怎么解决。

2024-02-07 09:46:11 395

原创 关于git的一些常见操作整理

另外,如果当前分支与远程分支存在追踪关系,则在分支名后面会有 [origin/branchname] 的形式表示关联的远程分支。现在你已经切换到本地的b分支了,并且该分支与remote/b分支同步。你可以在本地b分支上进行修改和提交操作,然后将更改推送到远程仓库中的remote/b分支。1.git从remote/a下取了一个a分支 想切换到remote/b分支同时建立本地b分支 怎么操作?这将会在本地创建并切换到名为b的分支,并且这个分支将与remote/b分支关联。

2023-11-03 09:48:37 249

原创 Adb发送特定广播给App和App获取权限的命令

最近在做Autostart,但是没有bench R1环境 目前在模拟器上调试,需要调试自定义的广播和获取悬浮窗权限(因为这个app需要在开机未启动app的情况启动服务区获取传感器信号然后全局弹窗)。2.包名获取悬浮窗(或者其他权限)

2023-08-08 09:47:20 2103

原创 Python解析excel之Android多语言支持

最新车企给了一份多语言的翻译表,需要进行多语言支持,像下面这样针对这种文件,我们肯定不能一个个字符串取拷贝,很容易出错,所以想用python取处理这个表格然后生成对应的string文件.

2023-05-26 18:00:24 871

原创 Android Unity串接Bluetooth开发

之前在和Unity对接蓝牙开发(和theme,brightness后面发博客进行讲解),现在将这一块梳理下。目前我这边的流程是android端做接口,然后unity调用android的接口进行下面一些操作,此外还有android主动调用unity的情况。通过以上两个action来接收不断增加的附近蓝牙,随后在onReceive进行判断,将NativeDevice信息传给Unity,Unity根据此结构将蓝牙列表显示出来。BluetoothAdapter…enable()进行开启。

2023-02-01 18:38:57 2186 1

原创 Installed Build Tools revision 32.0.0 is corrupted. Remove and install again using the SDK Manager.

找到自己 sdk 的目录位置,默认在 %AppData%\Local\Android\Sdk\,Win + R 快捷键打开启动,输入 %AppData% 即可快速进入;然后继续找到 build-tools\31.0.0\lib 目录,将 d8.jar 改成 dx.jar 即可。然后进入目录, build-tools\31.0.0,将 d8.bat 文件名改成 dx.bat;1.降低sdk版本,比如降低到30,同时BuildTool也降低。今天Unity打包apk碰到这个问题,记录下。

2022-12-15 11:28:30 301

原创 关于Unity和android互调

首先C#这边需要定下下AndroidJavaObject,然后需要android这边有一个Utils类或者其他类去定义给unity调用的public方法,之后构造出对象,即可调用到android的相关方法,同时也可以接收回调参数和传参。之前我写了一篇文章,说的是Unity+Rn+Android的开发结构,这个我要说的是移除掉react native,android和unity直接进行互相调用。但是需要注意的是,只有java可以,kotlin是无法调用到的。这个还是很方便的,如下图。

2022-10-28 19:02:38 2828

原创 运行时白名单权限配置和开机时白名单权限配置

如果你的apk是放在product/priv-app/下面的话,比如我的settings,则需要放在product/etc/default-permissions/com.mobiledrivetech.settings.default.xml中。如果你的apk是放在product/priv-app/下面的话,则需要放在product/etc/permissions/com.mobiledrivetech.settings.xml。我们经常能碰到一些apk需要特殊权限。这种的话 格式是这样的。

2022-10-28 18:52:02 314

原创 git 问题 之 git add 后直接git commit --amend导致合入了上一笔提交的解决办法

这一步的时候我应该git commit的,手滑了,那这个时候怎么处理?有个最累的办法就是保存本地修改,重新拉一个工程,再对比过去提交,但是我后面发现git reflog可以解决此问题,如下。和图一对比,我们可以发现文件数量少了,没关系,我们把该路径添加回去即可。那么之后我们可以进行commit 和 push 了,问题解决了。然后我们看准下面那个id进行git reset,之后我们再看。这个操作之后我们可以发现都回来了。最近提交代码,进行一下步骤。

2022-10-28 18:43:22 751

原创 Android studio 之 Kotlin Not Configured

Kotlin not configured

2022-09-07 14:40:52 2929

原创 Car车载开发之Sensor Logic篇排序优化篇

针对此篇博客的代码,说实话,太多了,不够简洁,而且非常麻烦,耦合非常严重,我这边优化了一版,用两个for循环实现。

2022-09-01 16:07:11 475

原创 Car车载开发之Sensor Logic篇

最近再做这样一个事情,一个车分很多个视角面,左侧面,右侧面,前侧,后侧,顶侧等,每个侧面又有很多传感器,这些传感器通过CAN signal去串接,然后有三种状态,这里当点击一个Bad或者Need Clean状态的Sensor的时候,需要按照一定顺序把所有出问题的Sensor在viewpager中进行展示,Logic如下。我这边需要做的是,点击任意一个postion,都能返回一个集合,让viewpager去加载对应的视图。这里,我抽出了一个简化模型,在这个模型上去验证可行性。...

2022-08-30 13:49:03 660

原创 pythoncharm之channels PackagesNotFoundError

PackagesNotFounderror

2022-08-16 10:09:51 374

原创 Car开发之信号调试文档

文件配置:1.配置carservice2.配置json脚本如果需要单个调试,配置完第一步后,执行,车辆行驶状态id:const val VEHICLE_GEAR_SELECTION = 289408000//car parking or drivingcamera value对应如下0 => UNKNOWN1 => WORKING2 => PROBLEMATIC_DIRTY3 => PROBLEMATIC_FAULTY车辆行驶状态如下2 R档1 N4 D8 P比如修改Vehicle

2022-07-12 15:44:19 944 1

原创 Android车载开发小结之sensor,carmanager,carservice串接

Car车载开发

2022-06-27 19:08:21 1399

原创 android AutoMotive 之CAN signal模拟property

最近在获取和监听sensor的一些property,由于没有板子,需要模拟信号监听改变。经过查阅,发现有可以通过command-line两种方式,一种是carservice,另一个是Ivhal.其中,通过carservice改变属性,在设备重启后数据就消失了,并没有真正修改到。所以我们通过lshal的方式去修改,能保证修改的属性数据真实可靠。步骤1.adb root2.adb shell3.执行su,获取权限4.列出所有propertylshal debug android.hardware.

2022-05-20 10:58:50 1192 7

原创 关于Car api之sensorManager的获取使用

最近研究这块,突然看到一个提示那我就去这里看看,发现是这样的:CarSensorManagerTest :@MediumTestpublic class CarSensorManagerTest extends CarApiTestBase { @Test public void testCreate() throws Exception { CarSensorManager carSensorManager = (CarSensorManager) getCar

2022-05-09 15:41:36 733

原创 创建React本地模块库工程的坑

我在执行npx create-react-native-library react-native-awesome-module本地模块库工程到yarn example android的时候碰到很多坑,现在一一记录下。1.Execution failed for task ‘:app:stripDebugDebugSymbols’. > No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-

2022-05-07 16:39:31 696

原创 关于Unity+React+Android构建以及交互问题

最近要在车载上进行此架构,学了下,我大概描述下1.环境搭建1.1 Unity的话需要先下载Unity hub,然后再下载具体editor然后需要把开发环境从windows转成android,配置sdk,ndk,jdk这些,这些用默认的就行。1.2 React的话 下载下node,配置yarn ,再下载个vscode1.3 Android的话就是jdk ,sdk,As的下载2. 开发流程2.1 通过npx 初始化一个工程2.2 进入该工程,安装react-native-unity-view插件

2022-04-29 10:00:03 3109

原创 近日工作事项小结

之前主要做的车载上的CarAccount,主要是人脸注册,人脸登录,数据上传,这块,涉及的模块很多,比如我这边CarAccount调用了CarCamera的compare,CarCamera又调用了底层,通过aidl回调给我。然后数据上传又是台湾的人给我的jar包,我把信息baseinfo整理好,以及camera回调来的image信息,然后调用aar去上传。然后现在在做一个日志拷贝的东西,kotlin写的,将Music中的日志拷贝抽离出来,在原先拷贝mtklog的基础上,拷贝/data/system/d

2022-04-15 18:26:33 2071

原创 adb install提示[INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION

从微信拿的apk出现此问题:C:\Users\F2849716\Desktop\AR>adb install -r arapp_master_20220324.apkPerforming Streamed Installadb: failed to install arapp_master_20220324.apk: Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed to parse /data/app/vmdl1762808

2022-03-28 15:05:54 1530

原创 Android新版本广播无法接收问题Background execution not allowed

上周在解决问题单的时候,发现有个上传日志的广播一直都收到,log上没记录,很奇怪,然后查看日志,发现下面这行:03-24 17:49:38.694 912 1040 W BroadcastQueue: Background execution not allowed: receiving Intent { act=com.mobiledrivetech.dms.LOGCAT_FILE_UPLOAD flg=0x10 } to com.mobiledrivetech.dms/.CameraServic

2022-03-28 10:40:18 3276

原创 Android jetpack之navigation

前面看完了lifecycle,下面看navigation。步骤1:引入库 implementation 'androidx.navigation:navigation-fragment:2.3.1' implementation 'androidx.navigation:navigation-ui:2.3.1'步骤2:res下新建navigation目录,再创建个nav_graph的xml步骤3:创建fragment容器<?xml version="1.0" encodin

2022-02-23 16:02:59 2242

原创 Android jetpack之lifecycle

现在貌似流行jetpack这些东西了,我这边写几篇博客记录下。lifecycle的意图就是将之前和界面生命周期需要绑定操作的组件或者模块进行分离,单独自己管理,而不强依赖于界面,实际上依赖于那个界面,但是抽出到其他类进行书写,有利于Activity/Fragment/Service代码的简洁,从而降低模块间的耦合度,并降低内存泄漏发生的可能性。步骤:Activity/Fragment1.导入相应的库 implementation "androidx.lifecycle:lifecycle-

2022-02-23 11:19:57 1441

原创 Android Room数据库升级

Room数据库升级和原生数据库的概念是一致的:1.新建新表2.从旧表导入数据到新表3.删除旧表4.重命名新表具体代码如下:1.构建Migration ,里面完成表的操作。 static final Migration MIGRATION_1_2 = new Migration(1, 2) { @Override public void migrate(SupportSQLiteDatabase database) { // Crea

2022-02-16 14:36:01 2613

原创 Android原生数据库的升级更新OnUpgrade

最近从Room转移到原生sqlite,数据库更新这样处理。1 // 如果数据库文件不存在,只有onCreate()被调用(该方法在创建数据库时被调用一次)2 public abstract void onCreate(SQLiteDatabase db);3 // 如果数据库文件存在,会调用onUpgrade()方法升级数据库,并更新版本号。4 public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion

2022-02-15 16:12:23 1714

原创 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

最近把androidstudio 浏览器项目更新到gradle7.0.3除了一些问题。如在这个版本java 8已经不行了,得用java11,下载个java11配置一下就行。gradle jdk选择11就完事。

2021-10-21 23:27:28 266

原创 最近事情太多 写不了博客 后面更新

最近事情太多 写不了博客 后面更新

2021-07-04 23:30:32 64

原创 Android git多次提交的解决思路

最近啊代码审核非常严格,主分支提完得写验证报告,各种情况都得走一遍,比如ota等。然后我又一次性提交了多个代码,如A,B,C三笔push,但是因为某些原因,我需要修改B或者A的push代码,最后一笔提交是可以commit --amend,但是A和B不行,于是我只能进行下面几个步骤:1.git reset +某个commitid2.然后我用git status . 发现有很多修改,此时git pull --rebase也是有冲突的3.然后我git restore这些文件4.git pull --reb

2021-06-29 20:05:56 136

原创 Android浏览器性能优化实践版

项目从立项到出卖也就4,5个月实践,后期的时候总是得进行一些优化环境,比如App启动速度,性能,丢帧优化,内存泄漏等。下面是全局搜索和浏览器流程下面开始说一下浏览器上的一些优化1.启动:Application非致命比较耗时的操作都可以放子线程去初始化,如何评判是否耗时,由于我们的要求是启动速度在0.5s内,所以在0.03s左右的耗时操作都放子线程。这个时候维护一个统一的线程池就很必要了。腾讯sdk和信息流的广告sdk比较耗时,所以都放子线程了,而其他一些由于时间很短,所以暂时忽略。2.IO操

2021-06-03 20:30:42 199 1

原创 Android关于log的分析目录分析anr分析报错分析

关于Android log的分析,给出几点心得,大家在分析抓取的时候能更快定位问题,比如anr和crash等。这个是目录图:外层的目录我们就不看了,直接进入mobielog1.Crash:这个看crash_log,不用说 很多人都知道,也可以看main_log2.Anr:看最后一行sys_log比如:I ActivityManager: Done dumping05-24 11:41:55.433642 1103 13504 I AnrManager: dumpStackTraces

2021-05-24 12:00:54 904 1

原创 Possible solution: - Disable offline mode and rerun the build

Android碰到这个问题:Received status code 403 from server: Forbidden这个是在引入新工程后出现的此问题,开始怀疑是gradle问题,结果并不是,同事说把Greendao版本改成+: implementation 'org.greenrobot:greendao:+' implementation 'io.github.yuweiguocn:GreenDaoUpgradeHelper:+'这样会导致这些框架全部引用最新的,最终我发现

2021-05-10 21:48:32 4695 1

原创 Android 搜索报错: java.io.InterruptedIOException: thread interrupted ,延迟搜索策略

报错地方:java.io.InterruptedIOException: thread interrupted at okio.Timeout.throwIfReached(Timeout.java:145) at okio.Okio$1.write(Okio.java:76)我在搜索的时候出现这个问题,一开始以为是rxjava后面请求未解绑的问题,但是实际上,在zip操作的时候已经做了判断 if (null != zipDisposable &&a

2021-04-25 21:26:01 7568

原创 Android Viewpager+Tablayout+Fragment+Webview内存优化最终版

如图:全局搜索首页是信息流的形式显示展示,搜索页就是 Viewpager+Tablayout+Fragment,下面说下内存优化。1.Viewpager+Tablayout+Fragment的优化,针对这个我还专门写了个例子去测试,结果从leakcanary发现切换fragment的时候泄露很严重,这是demo里我之前的写法,1.MainActivity.java: package coolpad.testlistfragment;import android.support.design.w

2021-03-30 17:44:33 561

原创 Android webview点击视频播放卡住 黑屏 点击播放有声音但画面卡住或者黑屏的分析

最近webview结果页加载出现这个问题很头疼,因为你在log根本看不到什么有用的信息,即使有,就像我碰到的这个问题,看测试给的log是这个:2021-03-29 14:41:12.754 21510-21544/com.journeyui.globalsearch I/ui.globalsearc: Explicit concurrent copying GC freed 1040234(25MB) AllocSpace objects, 20(14MB) LOS objects, 49% free,.

2021-03-29 15:38:46 1800

原创 Android Skeleton使用和阴影动画的说明

这个框架效果挺不错的,我在Recyclerview中使用,但是有些坑要说明下。引用官方demo的图:先说使用:1.引入依赖 implementation 'com.ethanhua:skeleton:1.1.2'//动画 implementation 'io.supercharge:shimmerlayout:2.1.0'2.直接在初始化recyclerview的时候将Skeleton注册进去 RvRecentApp = findViewById(R.id.rv_

2021-03-26 17:40:39 1095

转载 Android 骨架屏效果,了解一下

以前做应用开发时,在数据尚未加载前一般会先给用户一个提示,最简单粗暴的方式就是菊花图,大多数做法是放一张有个性的静态图,示意正在加载数据,这样体验会好些,直到出现 Skeleton Screen(中文一般叫做骨架屏)极大地提升用户感知体验。其实一开始我并不知道这个效果叫什么名字,后来在 GitHub 看到有人开源了,赶紧 Star。今天我给大家推荐几个 Skeleton Screen 相关库,来了解学习一波。1、ShimmerRecyclerView简介A custom recycler view w

2021-03-26 13:54:04 189

原创 Android浏览器webview的加载优化(加载不出白屏,加载一半屏幕,一直加载,加载页面截断,某些页面部分无法点击但是刷新几次后能点击等一系列疑难杂症)

全局搜索结果页分首页,视频,新闻,图片,本机五个标签。其中前四个都是接的百度搜索引擎,但是每个页面做了特殊化处理,比如隐藏百度各个页面的顶部分类tab,只显示内容。下面说下优化webview加载1.接入腾讯x5 webview,这个很关键,如果你的工程和x5关联很大,应该采用静态化内核的方案去接入而不是仅仅下载一个jar。2.webview不采用布局的方式,而是直接new,传入的context是全局的context而不是activity的context。3.我的页面是顶部搜索框,下面tablayout

2021-03-24 15:05:52 1416 1

kotlin+rxjava轮询白名单申请.rar

Android kotlin+rxjava延迟轮询实现进程白名单的添加,例子比较简单 ,一个activity类,一个工具类,导入了一些ku

2020-09-22

Aidl跨进程通信

Android aidl的实现,里面写的很详细,可以作为aidl的参考

2017-10-08

Android属性动画的一些实例

主要参照hyman大神的博客写的一些例子,包含各种动画,在项目中也是可以用上的,但当然,还是用第三方的框架好点。

2017-09-25

android蒙版(启动引导)

一款简单却炫酷的蒙版,赶紧下载下来研究。研究github上的结果,因为运行不了官网的demo,所写自己写了哥,功能具备

2017-09-23

空空如也

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

TA关注的人

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