- 博客(239)
- 资源 (16)
- 收藏
- 关注
原创 Java中深拷贝和浅拷贝
由于"field1"是基本类型,所以只是将它的值拷贝给"field2",但是由于"refObj"是一个引用类型, 所以CopiedObject指向"refObj"相同的地址。当对SourceObject做深拷贝时,创建了CopiedObject,它有一个包含"field1"拷贝值的属性"field2"以及包含"refObj1"拷贝值的引用类型属性"refObj2"。浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。
2024-02-28 18:34:27 228
原创 Java单例模式
使用单例模式的主要目的是为了确保系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能
2024-02-18 15:17:39 207
原创 Java泛型编译期擦除,为什么反射还能拿到泛型信息?
Java泛型擦除:在编译阶段泛型类型信息会被擦除,也就是说编译后的字节码中不再包含关于泛型类型的具体信息(这是为了保持与旧的Java版本的兼容性,因为泛型是在Java 5中引入的)。其实java泛型的类型擦除并不是在class文件中不保存泛型信息,而是在字节码的方法体或者类结构中擦掉了泛型信息,这样做的好处就是在不改变虚拟器的前提下可以引入泛型的特性。尽管泛型信息在运行时被擦除了,但是仍然可以通过反射获取泛型的类型信息(上面代码展示)这也就是所谓的“范型擦除不彻底”
2024-02-16 17:12:23 268
原创 try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
2024-02-16 16:39:40 284
原创 openharmony容器组件之SideBarContainer
SideBarContainer:提供侧边栏可以显示和隐藏的侧边栏容器,通过子组件定义侧边栏和内容区,第一个子组件表示侧边栏,第二个子组件表示内容区
2022-08-10 17:52:56 529
原创 自定义圆形ProgressBar渐变进度条(loading)
效果图:首先自定义Drawable资源:bg_progress.xml<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees=
2022-05-25 15:51:31 641
原创 Error: Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) fr
项目出现异常:Error: Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.5.0-alpha02] AndroidManifest.xml:24:18-86 is also present at [com.android.support:support-compat:28.0.0] AndroidMan...
2022-05-17 15:19:55 3855
原创 Manifest merger failed : Apps targeting Android 12 and higher are required to specify an explicit v
新建项目运行出现以下异常Manifest merger failed : Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/mani.
2022-05-17 14:07:30 17663 2
原创 BLE蓝牙中BluetoothGatt 连接后返回空服务列表
最近做BLE蓝牙项目,发现使用connectGatt进行连接,在回调的callBack中返回的服列表是空的解决方案:在蓝牙连接成功之后需要调用bluetoothGatt.discoverServices();在调用onConnectionStateChange连接成功之后调用gatt.discoverServices();运行之后会回调onServicesDiscovered方法,在该方法中可以获取到service列表...
2022-05-10 09:04:48 1037 1
原创 自定义SeekBar样式
首先来看看效果图:这里的自定只定义了一个是seekBar的进度条颜色,另一个是thumb滑块的颜色进度条的颜色drawable->seekbar.xml<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/backgrou
2022-05-09 14:48:32 1789
原创 Warning: debug info can be unavailable. Please close other application using ADB: Monitor, DDMS, Ecl
使用AndroidStudio进行项目debug时出现异常:Warning: debug info can be unavailable. Please close other application using ADB: Monitor, DDMS, Eclipse解决:手机进入设置->开发者选项->USB调试重新打开或者手机重新连接吧...
2022-05-06 18:16:04 2804
原创 动态注册广播接收器不起作用-BluetoothDevice.ACTION_FOUND
最近公司需要开发一款蓝牙app,从来没搞过蓝牙所以想写个demo试试手,于是按照文档就开始了,一口气把蓝牙的状态、扫描、扫描完成等广播一口气全都注册了 //蓝牙状态监听 IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED); //扫描蓝牙设备 filter.addAction(BluetoothDevice.ACTION_FOUND);
2022-05-05 14:58:54 2327
原创 Android NDK location无法配置(AndroidStudio4.2.2)
最近项目开发中有添加C的库,需要配置NDK,首先按照正常步骤,先下载需要的NDK版本:File ->Settings ->Appearance & Behavior ->System Settings ->Android SDK下载完成之后我们到项目进行配置:File ->Project Structure ->SDK LocationAndroid NDK location无法选中修改配置,就连Download都无法点击,虽然上面显..
2022-04-24 15:59:44 6255 1
原创 Android将library打包成jar包和aar包(SDK打包)
最近项目需要将部分功能抽离出来打包成SDK提供给客户,让客户自行二次开发,下面来看看具体步骤:1,File->New->New Module 注意选择Android Library,点击finish就可以2,然后将相关需求在新建的Library中完成,接下来就是配置,在library的build文件中添加配置(注意代码中的mylibrary是自己命名的,名字随便改)注意from配置,不同的androidStudio的版本路径会不一样(本版本4.2.2)老版本可能会在build
2022-03-29 14:10:10 6236 3
原创 android.os.FileUriExposedException:exposed beyond app through ClipData.Item.getUri()
最近调用系统相机拍摄图片的功能,一开始是直接调用相机拍摄但是图片返回的是缩略图,所以非常模糊,于是就传入图片保存路径进行高清图保存,拍摄成功之后就直接加载保存的地址就可以拿到高清图片,先看看代码 //存储路径 val fileName = File(getOutDirectory(this@RecordActivity), "${System.currentTimeMillis()}.jpg") val intent = Inten
2022-02-08 09:34:23 2959 1
原创 android调用系统相机返回图片模糊
最近需要用到调用系统相机拍摄照片的功能,于是就直接调用系统的相机进行拍照,发现返回的bitmap存储之后都是非常模糊的调用系统相机拍摄照片,由于StartActivityForResult过时,改用了新写法 val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) val startActivity = registerForActivityResult(ActivityResultContrac
2022-02-07 18:02:20 2283 2
原创 startActivityForResult方法过时
使用代码调用系统相机进行拍摄照片发现调用startActivityForResult方法过时查看竟然被标志为Deprecated于是带着好奇心去研究一番,既然这个过时了,那要怎么使用原本的startActivityForResult的功能?需要注册一个ForActivityResult: val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) val startActivity =
2022-02-07 17:12:08 9979 4
原创 java.net.UnknownServiceException: CLEARTEXT communication to 192.168.20.142 not permitted by network
项目运行出现异常:出现原因:因为 Android P 是默认禁止访问http的API的 所以想要跳过https的限制要这样做处理方案:在res文件夹下创建xml目录,新建network_https_config.xml文件内容如下:<?xml version ="1.0" encoding ="utf-8"?><network-security-config> <base-config cleartextTrafficPermitted="t
2022-01-05 15:26:43 1695
原创 Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$2>: java.
项目运行报错:修改依赖appcompat版本项目本来的版本是1.2.0更改为1.3.0-alpha02implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'重新编译运行即可
2022-01-05 11:17:55 3109
Android自定义TextView带圆角及背景颜色
2016-09-22
DrawerLayout实现侧滑(右侧显示)
2016-09-19
Android拍照或选择本地图片并剪裁图片设置成头像
2016-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人