自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Android gradle groovy改为kotlin总结

Android groovy 转 kotlin 总结,groovy与kotlin比较

2024-07-15 09:37:50 1077

原创 问题记录:Unable to load class ‘javax.xml.bind.JAXBException‘

Android Studio 升级到Android Studio Arctic Fox | 2020.3.1 后报如下错误:原来是因为JDK问题,解决办法:Ctrl+Alt+Shift+S 打开“Project Structure”->选择SDK Location

2021-12-31 15:47:55 3193

原创 Intel HAXM is required to run this AVD. No emulator installed

今天Android Studio运行模拟器莫名其妙报错,昨天还好好的,错误如下图:在网上查了很多解答,说是Intel HAXM问题,但很明显这个问题出在“No emulator installed”这里。解决办法解决办法如下图,去掉Android Emulator勾选->点击Apply->apply成功后再勾选Android Emulator->点击Apply;问题解决。以上解法参考了stackoverflow上的一个回答,如果以上方法无法解决你的问题可以参考它 stackov

2021-12-02 14:52:05 5153

原创 Gradle实用配置笔记

两个依赖的assets下有相同文件导致冲突如高德地图2d和3d下的assets/location_map_gps_locked.png冲突处理:android { packagingOptions { pickFirst 'assets/location_map_gps_locked.png' }}

2021-09-17 10:13:17 407

原创 Context.getExternalFilesDir()方法与返回的路径对照表

为了用户隐私安全,Android的数据访问权限限制越来越严,使用应用自己的私有目录的机会越来越多,有必要了解下获取私有目录的方法及与路径的对应关系:方法路径getExternalFilesDir(null):/storage/emulated/0/Android/data/<应用包名>/filesgetExternalFilesDir(“logs”):/storage/emulated/0/Android/data/<应用包名>/files/logs

2021-03-22 10:00:33 12176 2

原创 RemoteServiceException: Bad notification for startForeground:

这是在启动前台服务时报,网上的解释大部分是说没有指定channelId,但我的是指定了的。报这个错只是因为我把manifest里application标签的android:icon="@mipmap/ic_launcher"给删除掉了,设置一个icon问题就解决了。Process: com.example.notification, PID: 4666 android.app.RemoteServiceException: Bad notification for startForeground

2020-12-29 20:05:40 1538 2

原创 Handler 机制简单解释

Handler 主要用于线程间通信四个要素Message: 消息MessageQueue:消息队列,用于存储消息Looper: 循环的从消息队列中取出消息,交给Handler处理Handler: 用来发送消息和处理消息源码简单解释A线程:Looper.prepare(); 该方法执行以下操作:new Looper(); Looper构造函数会执行以下操作:创建消息队列 mQueue = new MessageQueue()持有当前线程 mThread = Thread.cu

2020-06-29 15:08:00 207

原创 Java引用类型的区别

对比四种引用的强度:强引用 -> 软引用 -> 弱引用 -> 虚引用引用类型被垃圾回收条件用途强引用从来不会对象的一般状态软引用内存不足时对象缓存弱引用被垃圾回收器发现时对象缓存虚引用被垃圾回收器发现时跟踪对象的垃圾回收详细说明软引用、弱引用和虚引用的构造函数都可传入引用队列(ReferenceQueue),作用是当Reference 所引用的对象被回收后,Java 虚拟机会把这个 Reference 加入到 Refe

2020-06-28 22:24:29 239

原创 第三行代码 Kotlin 学习笔记

变量和函数变量var (variable) 可变量val (value) 不可变量初始化val a: Int = 10val b = 10函数说明: 函数(function)与方法(method)是同一个概念,Kotlin叫函数,Java叫做方法写法:基本写法// 有返回值fun methodName(param1: Int, param2: Int): Int { return 0}//没有返回值可以省略 Intfun methodName(param1: In

2020-06-20 17:58:54 378

原创 CameraX 学习笔记

由于项目中自定义的相机经常报奇葩bug,决定学习下 CameraX。通过查看谷歌的官方 Demo ,学到了不少知识。下面是相机的使用步骤及方法解释等。CameraX 使用xml 布局<!-- 建议宽高都用 match --><androidx.camera.view.PreviewView android:id="@+id/view_finder" android:layout_width="match_parent" android:

2020-05-28 15:42:55 2235 2

原创 ExifInterface 属性说明及实际值举例

在自定义相机拍照时用到了 ExifInterface,决定将一些常用的属性记录下来。下面是属性解释和实际照片的属性值,其中经纬度由于没有值为了方便解释从其他地方copy的值。所以手机为小米6,Android9,MIUI 11.0.5 稳定版。private fun log(exifInterface: ExifInterface) { //图片方向,6表示旋转90° ## orientation=6 val orientation = exifInterface.getAttribute(Exif

2020-05-23 09:26:02 1414

原创 Android 开发常用命令笔记

分析项目包的依赖关系,并保存到name.txt文件中gradlew :app:dependencies >name.txt获取手机上当前正在显示的应用的包名及Activityadb shell dumpsys window | findstr “mFocused”获取手机分辨率adb shell wm size卸载应用adb uninstall [...

2020-04-02 10:12:35 1094 1

原创 Android项目迁移到Androidx经验总结

由于迟早要迁移到androidx,领导就把这个任务给了我。网上关于Androidx的介绍基本照抄的官方,将项目迁移到androidx也是一个简单的HelloWorld项目演示,我希望知道的是如何在庞大的或者有很多第三方依赖的项目中如何迁移到Androidx。既然网上没找到想要的,那就只能自己摸索了,最后终于迁移成功,感谢坐我旁边的大神。下面是对我自己项目迁移的经验总结,供参考:关于Androi...

2019-11-30 11:13:02 3230

原创 TabLayout-ViewPager-Fragment笔记

参考https://juejin.im/post/5864eb13570c3500695dcd1aTabLayout-ViewPager-Fragment用法布局<com.google.android.material.tabs.TabLayout android:id="@+id/tabLayout" android:layout_width="match_par...

2019-10-15 11:09:01 405

原创 Java反射的方法简单解释

发现Java基础还是不牢固,有必要复习以下:Class方法//获取所有public变量,包括父类的Field[] fields = mClass.getFields();//获取当前类声明的所有变量,不包括父类的Filed[] fileds = mClass.getDeclaredFileds();//返回指定的变量;需要捕获异常NoSuchMethodExceptionFile...

2019-10-12 15:13:41 336

原创 Android10(Api 29)新特性适配小结

文档说明本文档基于谷歌AndroidQ官方文档和华为Q版本应用兼容性整改指导(华为的有点过时)所用测试机:Google初代Pixel,AndroidQ-beta6-190730.005版本号对应关系Android-Q = Android-10 = Api29Android-P = Android-9.0 = Api28设备硬件标识符访问限制限制应用访问不可重设的...

2019-08-19 11:23:07 16046

原创 腾讯Bugly、腾讯移动分析和OneApm功能对比

腾讯Bugly、腾讯移动分析和OneApm区别功能腾讯Bugly腾讯移动分析OneApm说明异常上报√√√Bugly的异常统计更合理,直观运营统计√√√腾讯侧重总趋势,OneApm可定位到每个用户的使用情况应用升级√××提供给App使用的功能,目前App没用性能监听××√OneApm独有,监听网络耗时和消耗流量统计,页面...

2019-04-24 19:59:27 1586

原创 Android系统版本号-API-代号-发布日期对照表

VersionNameAndroid版本 VersionCode 缩写 英文代号 中文代号 发布日期 9.0 28 P Pie 派 2018-08-07 8.1 27 O_MR1 Oreo 奥利奥 2017-12-05 8.0 26 O Oreo 奥利奥 2017-08-22 ...

2018-09-13 19:06:19 2222

原创 Java基础:单例/集合/集合排序

=============================单例设计模式(Singleton Pattern)集合Collection双列集合Map集合排序单例设计模式(Singleton Pattern)单例模式作用: 保证类在内存中只有一个对象 如何保证类在内存中只有一个对象呢? 控制类的创建,不让其他类来创建本类的对象。即私有化构...

2018-09-12 10:45:07 485

原创 Android文字转语音引擎(TTS)简单比较及下载

目前国内Android系统自带语音引擎包括华为小米等居然都是不支持中文语音功能,以下是在网上找到的谷歌、科大讯飞和百度的纯语音引擎apk,没有启动界面,安装后在设置中能找到。不知为什么这些引擎在官网上都是找不到的。百度网盘下载地址 密码:3si0简单比较com.svox.pico 系统自带不支持中文语音com.svox.classic 搜svox搜到的,和上面类似不支...

2018-03-17 14:43:37 136187 32

原创 获取屏幕宽高、状态栏高度、底部导航栏高度、dp转px、px转dp

1. 获取屏幕宽高方法一,返回像素值,不包括底部导航栏高度public static int getHeightPx(Context context) { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = wm....

2017-06-02 21:32:18 1925 1

原创 获取联系人信息方法

获取android手机联系人信息方法

2016-12-19 22:53:04 453 1

空空如也

空空如也

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

TA关注的人

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