自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (10)
  • 收藏
  • 关注

原创 【android Framework 探究】android 13 aosp 全记录 - 烧录

查看 Device States为“lock”再进行如下解锁操作,如果已经是“unlock”,说明已经解锁解锁,直接开始烧录即可。使用手机音量键切换,Unlock the bootloader,按电源键确认,解锁后,Device States为“unlock”export ANDROID_PRODUCT_OUT ,请设置绝对路径,发现我出错时用的。书接上文,编译完后,在二手平台挑挑拣拣最终下手piexl 5,这就开始迫不及待的烧录。~/来代替/home/{usr name}如果之前已经解锁可以跳过这步。

2023-01-01 10:16:45 1477 1

原创 【Compose】Desktop Application 初尝试

没有最好的只有最合适的,希望kotlin在android的火热,能让compose能让更多的人选择,这样比起选择flutter去学习一门新语言,传统的android开发者就可以稳步前进,先在jetpack compose中锻炼,如果它更好用,更受欢迎,相信可以让近几年遇冷的应用开发领域,未来就业机会也会宽广一些。

2022-11-27 17:28:52 1551

原创 【android Framework 探究】android 13 aosp 全记录 - 编译

自从关注Framework这一块儿,就有了自己编译aosp刷机的想法,模拟器当然是可以的,但是体验感还不能和真机想比,于是买一个二手piexl的想法就有了,根据预算选定piexl 5,支持最新的android 13,二手平台挑挑拣拣时间拉的有点长,不如中间就开始先编译好。

2022-11-20 19:56:22 5856 7

原创 adb shell 命令之service调试

在android上有丰富的shell命令用来调试,非常方便,本文通过一个用法来观察下service命令的用法

2022-11-03 16:15:40 1710

原创 【性能优化】Simpleperf的认识和使用

当前的主要目的是学会Simpleperf的抓取和采集方法,并能识别出一些比较明显的函数耗时问题,其实官网的描述是最全面的,本文也在各个地方插入了超链接方便跳转,如果有想对一些细节或一些其他用法的需要,可以查看官网。

2022-09-16 17:06:52 4339 2

原创 算法4 - 二分查找

二分查找(迭代+递归)

2022-07-27 21:20:03 163

原创 【android Framework 探究】浅谈AIDL和Binder

先聊聊binder,本文不是讲binder,android中的binder框架说实话,要从内核-》驱动-》native-》JNI -》Framework-》app层,牵扯的知识点从内核调度,虚拟内存,内存映射,数据结构,线程管理和设计模式,覆盖面太大了,要真正吃透binder需要大量的时间投入,甚至可能走很多弯路,我的建议对应用开发者,需要熟练掌握AIDL编写方式,理解Binder作者在android框架进程通讯的设计原理,理解常接触的Stub,Proxy这些角色的概念和Parcel序列化传输。当然.

2022-04-23 18:46:32 668

原创 Android Studio Fox 新建项目统一报错:“Cause: javax.xml.bind.UnmarshalException”

Android Studio Fox 新建项目统一报错:“Cause: javax.xml.bind.UnmarshalException”

2022-01-22 22:13:16 2253

原创 【android Framework 探究】事件分发

Android 事件分发原理闲暇时间,有空来整理一下android

2021-10-22 18:22:37 338

原创 Android Gradle 7.0 使用maven-publish发布组件

Android Gradle 升级7.0 带来的maven问题

2021-10-13 20:26:02 5639

原创 看看人家 - Glide的LruCache

public class LruCache<T, Y> { /** * 缓存中是否包含此KEY */ public synchronized boolean contains(T key); /** * 从缓存中获取目标数据 */ public synchronized Y get(T key); /** * 把item放入缓存 */ public synchronized Y put(T key, Y item); /** * 从缓存中移除 */ p

2021-10-09 18:41:40 420

原创 Java 加载RSA私钥pkcs8和pkcs1的问题

问题描述:在使用Java原生API进行RSA私钥加载的时候,报错如下:java.security.InvalidKeyException: IOException : algid parse error, not a sequence原因分析:通常JAVA中使用的RSA私钥格式必须为PKCS8格式,而我使用的私钥是PKCS1格式。解决方案一,格式转换:1,使用openssl进行格式转换,嫌麻烦我没有采用。2,使用在线工具转换(推荐),点击进入解决方案二,使用BouncyCastle1,

2021-07-21 17:18:24 3140 3

原创 我想学FFmpeg (一) Ubuntu 编译安装

Ubuntu18.04 编译安装ffmpeg

2021-04-30 17:23:23 600

原创 我的OpenCV4Android之路(一) - 开篇

学习opencv

2021-04-30 17:17:45 550

原创 Android 修改Hosts

前言:项目中有需要对system/etc/hosts进行修改。环境值系统类型userdebug系统版本9.0问题:system/etc/hosts仅root用户可以修改步骤:1,以root用户进入shelladb rootadbd is already running as root2,重新挂载设备adb remountremount of the / superblock failed: Permission denied2,汗,提示没

2021-04-29 14:50:46 1103

原创 BouncyCastle: Android: Unsupported class file major version 59

BouncyCastle: Android: Unsupported class file major version 59. Failed to transform bcprov-jdk15on-1.67.jar (org.bouncycastle:bcprov-jdk15on:1.67)https://stackoverflow.com/questions/65182975/bouncycastle-android-unsupported-class-file-major-version-59-fai

2021-03-27 21:07:32 2168

原创 android studio Kotlin 单元测试 找不到自定义的类 Class not found

Android studio Kotlin 单元测试, 找不到自定义的类问题描述:在项目里面的一个模块,开始创建的是android-library,没有考虑使用kotiln,后面开始使用kotlin后,单元测试里面import自己的kotlin类,执行会报错“class not found”原因分析:查看此模块的gradle发现问题,没有开启kotlin插件,同时要增加kotlin的测试依赖库引用。解决方案:开启kotlin插件,同时要增加kotlin的测试依赖库引用plugins {

2021-03-15 16:30:24 1286

原创 Android OOM问题及优化总结

OOM和内存优化总结什么是OOM?OOM 即 (java.lang.OutOfMemoryError), JVM没有足够内存给对象分配空间,超过jvm的堆空间最大值(-Xmx参数),此异常就会被触发,导致应用强制被杀死。

2021-02-01 09:19:23 2093 2

原创 ubuntu lftp 执行ls 报 “在 0 [FEAT 协商...]”

lftp 出现问题描述:ubuntu 18.04lftp [email protected]`ls' 在 0 [FEAT 协商...] 解决方案:sudo gedit ~/.config/lftp/rcset use-feat yes这里是引用https://blog.zengrong.net/post/lftp-feat-negotiation/

2021-01-26 18:42:27 2981

原创 Andriod SQLite3 数据库损坏,优化,修复,备份方案研究

Andriod SQLite3 数据库损坏,优化,修复,备份方案研究1、数据库损坏原因我们首先来看 SQLite 损坏的原因,SQLite官网《How To Corrupt An SQLite Database File》上列出以下几点:文件错写文件锁 bug文件 sync 失败设备损坏内存覆盖操作系统 bugSQLite bug但是我们通过收集到的大量案例和日志,分析出实际上移动端数据库损坏的真正原因其实就3个:空间不足设备断电文件 sync 失败我们需要针对这些原因

2021-01-19 19:20:17 2937

原创 Android源码对应的SQLite版本

Android源码对应的SQLite版本

2021-01-04 10:04:59 575

原创 Android AlarmManger 精准定时

Android 后台精准定时任务

2020-12-30 20:03:21 1400

原创 java Annotation注解(二)乞丐版ButterKnife

业精于勤荒于嬉,写文章练习表达能力,写代码练习基本工。学习目标:通过自定义注解处理器,实现最简单的ButterKnife,实现代码注入功能。

2020-12-29 09:44:46 135 1

原创 java Annotation注解(一)基本用法练习

java Annotation注解基本用法练习

2020-12-28 09:15:02 202

原创 java.lang.UnsatisfiedLinkError,couldn’t find “libc++_shared.so”问题解决

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.demo.hellowcdb-1/base.apk”],nativeLibraryDirectories=[/data/app/com.demo.hellowcdb-1/lib/arm64, /data/app/com.demo.hellowcdb-1/base.apk!/lib/arm64-v8a, /sys.

2020-12-23 10:05:46 5745

原创 Ubuntu MemoryAnalyzer 启动报错:The platform metadata area could not be written

问题描述:Ubuntu 下载MAT独立安装包,解压后启动报错。Ubuntu 18.04MemoryAnalyzer-1.10.0.20200225-linux.gtk.x86_64.zip分析:![!SESSION 2020-12-10 18:07:29.705 -----------------------------------------------eclipse.buildId=unknownjava.version=1.8.0_275java.vendor=Private

2020-12-22 10:49:50 999

原创 Android Hook 实战--替换第三方sdk的类

场景:项目中调用了第三方sdk中的方法,此方法返回值为对象,对象为空表示失败,非空表示成功。问题描述:查看jar包的class,对应失败的分支均有log,但log开关设置为false,无法跟踪分析详细日志。设备定制的os为user版本,且关闭了断点调试的功能。和sdk提供商沟通后,暂时没有答复什么时候提供新的sdk(希望对方打开日志开关)沟通等待修改回复迟迟没有下文,又得配合给出解决方法,想到了几个方案进行排查原因分析:提示:这里填写问题的分析:例如:Handler 发送消息有两种方式

2020-12-15 13:36:49 2686

原创 java ForkJoin的用例

练习目标:温习java中“分而治之”思想,编写代码练习ForkJoin的用法练习内容: 分别使用ForkJoin和单线程递归方法,统计同一父目录下,所有文件的个数(不统计目录)的总和,打印耗时。上代码:递归方法 public static class MyRunnable implements Runnable{ File file; int count = 0; public int getCount() {

2020-12-15 13:31:03 80

原创 java CompletionService的理解和练习

练习目标:掌握 Java 8 新增的CompletionService的优点,用法和使用场景。练习题目: 执行1000个任务,顺序获取结果,为了体现CompletionService的优点,这里同时用ExecutorService作为对比。代码 – 子任务 //总共1000个任务 private static final int MAX_NUM = 1000; //使用Callable,适用于需要返回值的场景。 public static class MyCallable i

2020-12-08 10:11:53 126

原创 java Thread 中ReentrantLock和Condition日常实践

业精于勤荒于嬉,写文章练习表达能力,写代码练习基本工。

2020-12-01 09:28:04 119

原创 java Thread 中wait和notify方法日常实践

业精于勤荒于嬉,写文章练习表达能力,写代码练习基本工。

2020-11-23 15:24:58 265 2

原创 jvm内存溢出练习记录

理解多少写多少,多删少补当勤奋文章目录练习目标:内存溢出的类别:堆溢出栈溢出1栈溢出2方法区溢出直接内存溢出练习目标:对jvm的几种常见的内存溢出进行回顾练习内存溢出的类别:堆溢出 - java.lang.OutOfMemoryError: Java heap space栈溢出 - java.lang.StackOverflowError栈溢出 - java.lang.OutOfMemoryError方法区(元数据空间)溢出 - java.lang.OutOfMemoryError:.

2020-11-20 10:53:21 109

原创 Android AudioTrack 爆音问题记录

项目场景:通过AudioTrack播放wav音效文件问题描述:声音开头有爆音,“嗒”一声非常明显: 原因分析:经过修改Buffer大小,采样率都不起作用,最后沉下心来查找资料,最终从wav文件格式入手,找到原因:wav文件格式包含文件头和文件体。代码中从文件读取到buffer播放,没有跳过文件头。有人说了,无图不真相,抄了一个图做纪念,方便查看。解决方案:AudioTrack的write方法跳过头部,仅播放data域。//先确定声道,采样率,播放类型,位数,根据实际情况进

2020-11-13 10:08:16 1845 1

原创 AudioTrack播放wav文件的一次问题记录

项目场景:项目场景:使用AudioTrack代替SoundPool播放wav文件,问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, b

2020-11-10 15:37:29 248

原创 Android SoundPool 无声音问题记录

项目场景:APP在交易成功,失败等条件下,需要有声音提示(短促音效,共4个),客户制作并提供了wav格式文件,自然的想到了用SoundPool预加载,之后需要的时候进行播放。问题描述:SoundPool在一段时间频繁的切换播放后,没有声音: //初始化 public boolean init(Context context){ mSoundMap = new HashMap<>(); mAssetManager = context.getA

2020-11-10 14:34:40 1565 2

原创 java中的volatile关键字日常用法实践

文章目录前言一、volatile关键字的语义?二、举例实践1.可见性2.DCL单例模式中禁止指令重排序总结前言本篇文章主要记录在读完《深入理解Java虚拟机》中对volatile关键字的用法后,进行个人消化后的总结和代码实践。一、volatile关键字的语义?可见性,子线程修改变量,值立即回写到主内存,其他线程不从缓存而是直接从主内存读取新值。禁止指令优化重排序。二、举例实践1.可见性代码如下(示例):public class Demo { private static

2020-11-06 15:11:18 132 2

原创 记录一次 Integer 自动装箱的翻车经历

怀疑人生现场回顾:1,在JNI开发过程中,遇到需要使用Integer进行参数传入传出的场景,比如结果为3。2,在步骤1的jni层通过Integer传出的结果在一个八竿子打不着的地方使用Gson进行json字符串转换成实体对象的时候,所有int整形的变量都被赋值为3,即使原始字符串的值为0。java接口//不适用返回值传递的原因是,返回值被设计用来指示接口执行成功==0,其他为错误码。当成功时,再通过integer传递结果。public native int func( Integer intege

2020-11-04 19:06:14 142

原创 Android静默安装研究总结

android 5.1以上静默安装总结

2020-10-15 11:57:09 869

原创 Android系统设置之勿扰模式

项目场景:智能车载机问题描述:车载机使用4G流量,但客户接入的是带通话功能的sim卡,客户测试过程中遇到有人拨号,来电音量不是静音情况下,居然通了。客户提出禁止来电功能。原因分析:尽管系统进行了裁剪,去掉了拨号和来电APP,但是来电等功能还是可以使用的,最后无人接通,系统通知栏出现了来电未接图标。解决方案:方案1,求助系统开发人员在系统层修改代码,禁止来电及拨号功能,当然是行的通的,但是被告知不能及时修改,那么进行OTA升级可能要过段时间,可是应用马上到了发布日,就先自己想想办法了

2020-09-28 18:14:03 5512 5

原创 一次内存泄漏的问题记录

项目场景:同事在开发一款人脸识别app时,在多次执行,打开--》人脸识别--》关闭--》打开循环测试过程中会耗尽内存。问题描述:测试同学通过用monkey脚本测试,遇到OOM内存溢出的问题。日志片段1:可以看到系统一直在频繁gc,已经超过设定的512mb上限。09-22 13:53:23.045 3052 3806 I zygote : Waiting for a blocking GC Alloc09-22 13:53:23.502 3052 5107 I zy...

2020-09-23 16:47:50 11764

西咸新区沣东新城镐京片区控制性详细规划.pdf

根据《城乡规划法》、《陕西省控制性详细规划管理办法》的有关要求,西咸新区规划建设局组织编制了《西咸新区沣东新城镐京片区控制性详细规划》。为提高规划的民主性、科学性和可持续性,规划建设局将规划成果予以公示,广泛征求社会各界和广大市民的意见和建议。公示期为2018年2月11日—2018年3月12日,在此期间,欢迎公众以电话、电子邮件、信函的方式提出宝贵意见。

2020-08-11

西咸新区控制性详细规划.pdf

西咸新区建设将充分发挥和彰显历史文化、生态水脉、资源要素和综合区位等特色优势,力争通过五到十年的时间,把西咸新区建设成为生态文明、环境友好、设施现代、社会和谐、开放包容、彰显历史文化、产业有序集聚的西安国际化大都市的主城功能新区和生态田园新城,构建社会经济发展新的增长极,打造全国区域协调发展的国家级新区。

2020-08-11

度秘语音引擎3.0-BaiduSpeechService.apk

度秘语音引擎,3.0版本,android系统安装后可以选择引擎进行TTS转换。

2020-08-11

nineoldandroids-2.4.0.jar

jake wharton开发的基于android3.0API的动画支持库,向下兼容到1.0

2015-02-07

Go语言编程.pdf

Go语言入门,Go语言编程.pdf 图灵原创-人民邮电出版社

2013-12-30

Java编程思想第四版完整中文高清版.pdf

Java学习的好材料,Java编程思想第四版完整中文高清版.pdf

2013-12-30

android pingyin4j-2.5.0.jar

android汉字转拼音,多音字处理,jar包

2013-12-30

ArcGIS for Android 2.0开发教程-基础版.pdf

Android平台开发ArcGIS入门基础教程

2013-11-13

空空如也

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

TA关注的人

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