自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 展开说说:Android动画之插值器和估值器

上一篇写了Android三种动画的使用,这里分析一下属性动画的两个属性插值器和估值器。1.1 描述TimeInterpolator、Interpolator、BaseInterpolator以及一些其他的XXInterpolator,一眼望去您认为谁是插值器的顶级父类,3、2、1,没错是TimeInterpolator,因此严格意义上来说他好像应该叫时间插值器。其实我的第一错觉Interpolator才是,下图可以看出来我真的错了。

2024-04-25 23:30:39 588

原创 展开说说:Android动画使用

属性动画Animator是个抽象类,有三个子类ValueAnimator、AnimatorSet,而TimeAnimator和ObjectAnimator是ValueAnimator的子类、我们都是在使用他们四个实现动画。补间分为平移动画translate、缩放动画scale、旋转动画rotate、透明度动画alpha以及动画合集set,用发基本类似此处以缩放动画为例。补间动画也可以在java代码中实现,这里其实完成了上面的第一步和第二部,有了animation对象其他的都一样了。实例去执行或者关闭动画。

2024-04-25 07:13:51 748

原创 展开说说:Android Fragment完全解析-卷二

3.1 ViewPager为什么可以滑动?因为ViewPager重写了View类的computeScroll方法,并在computeScroll中调用onPageScrolled并且里还调用了view的scrollTo实现view滑动,重写view中的这个方法,computeScroll和scrollTo配合专门负责实现滑动的

2024-04-21 22:31:49 840 1

原创 展开说说:Android Fragment完全解析-卷一

Fragment 它很独立,它可以定义和管理自己的布局,具有自己的生命周期,并且可以处理自己的输入事件。Fragment 很粘人,它不能独立存在。它们必须由 activity 或其他 fragment 托管(即fragment可以内嵌fragment使用)。同一 activity 或多个 activity 中可以使用同一 fragment 类的多个实例,但是要注意解耦避免让一个 fragment 依赖另一个 fragment 或在一个 fragment 操控另一个 fragment。

2024-04-20 19:28:03 729

原创 Android studio顶部‘app‘红叉- Moudle ‘XX.app’ dosen’t exist in project

找到settings.gradle文件检查是否有include ':app'。如果没有要加上;如果已经有了就先把它注释了然后点Syno Now,此时它开始编译了不会无动于衷袖手旁观了。最后把include ':app'这一行放开再点Syno Now问题解决。

2024-04-16 22:26:15 530

原创 Android-Handler详解_原理解析

5.1 handler的sendMessge相关的一些方法用来发消息,post方法其实最后也会调到send方法,然后通过enqueueMessage方法调用MessageQueue的enqueueMessage方法存储消息。5.2 handler的handleMessage方法或者Handler.CallBack的handleMessage方法,以及post方法的run回调方法。5.3 消息队列MessageQueue提供了enqueueMessage和next两个方法分别用来

2024-03-27 23:47:55 815

原创 Android-Handler详解_使用篇

我理解的Handler消息机制:以寄快递为例,我是Handler、快递员是Looper、商品仓库是MessageQueue、Messge是我下单消息寄出的物品。放假我Handler把电脑从公司寄回老家,我填写老家的地址就是声明handleMessage方法、我下单就是sendMessage我把电脑送到快递公司仓库MesssageQueue、然后经过快递公司内部流转,我老家的快递员Looper从仓库MessageQueue取出商品,根据地址送到我老家handleMessage方法。

2024-03-27 23:39:24 978

原创 展开说说:Android之SharedPreferences

是个接口它的内部接口是Editor,里面定义了上面五个数据类型的put方法,以及putString、remove、clear、commit、apply方法。父级接口定义的,因此增加、删除、清空方法需要使用edit但get方法不用,下面距离分别验证这些方法。在实际开发者很多会涉及敏感数据,针对敏感数据我们呢需要对其加密后再进行存储,取数据也是先解密再使用。如果需要存取比较复杂的数据类型,则需要对这些数据进行。上面可以看出getxx方法不在Edit接口中,他们是在。中引入的,调用它会安全的异步写入。

2024-03-16 23:54:00 1154

原创 HarmonyOS-鸿蒙系统概述

华为“1+8+N” 全场景智慧战略,其中居于核心的“1”是智能手机,“8”是指围绕手机的车机、音箱、耳机、手表/手环、平板、大屏、PC、AR/VR产品,N则指众多泛IoT设备。

2024-03-16 16:35:59 2312 1

原创 HarmonyOS-页面跳转Router实例演示

本文将以APP的登录和修改昵称为例演示官网的几种页面跳转、返回以及这些流程携带参数,实例的形式记录学习HarmonyOS的页面跳转。

2024-03-12 23:31:38 1186

原创 JAVA泛型浅析

Java范型generics,是JDK1.5引入的新特性,是一种编译时类型安全检测机制,可以在编译时检测到非法的类型。定义泛型参数时还可以使用继承,例如 ,后面都可以使用User类或它的子类接收在必要的时再强转指定类型。在方法调用时检测类型,在返回值类型之前的是范型方法的象征,此处表示声明了一个范型T,范型数量也可以多个比如;当实现范型接口的类不传范型实参:比如下面的也需要在类名增加GenericInterUser1和接口一样的范型。

2024-02-28 23:28:14 526

原创 鸿蒙-HarmonyOS之初见

运行项目是需要先到上面这个页面点击绿色三角启动模拟器,上面红色方块代表模拟器已经启动成功,然后到工程页面点击绿色三角启动项目在模拟器运行,如下图。官网地址:https://developer.huawei.com/consumer/cn/当前最新的版本3.1 ,windows和Mac,Mac又分了arm和x86的CPU。新建项目自带有的代码,左侧目录结构有点像Android又有点像小程序。在这个页面进行创建,首次创建需要先下载,按顺序点击即可。修改World为Harmony,至此项目已经运行起来了,

2023-12-21 23:01:58 606

原创 展开说说:Android之常用的延时执行策略

耗时很短,但是也是有一定开销足以让它在主线程顺序之后执行,以上代码测试发现从new Thread到子线程内第一行代码执行耗时不足1毫秒。第二种和第三中都依赖Handler,先定义一个handler。适用一直在后台运行的定时任务,此处放在一个。200)就会先执行主线程然后进入子线程,lock.wait(2000)放开,放开,lock.wait(2000)是线程的方法,他休眠中不会释放锁。200),就会先进入子线程执行完。是线程的方法,他休眠中不会释放锁。200毫秒延时也就是注释。的方法,他休眠会释放锁。

2023-12-19 22:50:20 1149

原创 Android 运行报错Failed to open zip file.Gradle‘s dependency cache may be corrupt (this sometimes occurs

Android Studio 运行项目报错:Failed to open zip file.Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)Re-download dependencies and sync project (requires network)

2023-12-17 22:32:20 560

原创 展开说说:Android之广播BroadcastReceiver源码浅析

总体来看大概可以分为两步,两者是异步的通过BroadcastQueue内的handler消息发送BROADCAST_INTENT_MSG消息连接,分别是广播的发送和处理过程

2023-12-17 21:03:04 1036

原创 展开说说:Android之广播接收者

动态广播如果注册了不反注册会引起内存泄漏,还有个更严重的如果没有注册直接去做反注册会报错IllegalArgumentException:Receiver not registed引发程序闪退(这里要注意使用非当时的注册的context反注册就等于使用没注册的)。3.1.1 有序广播-发消息 在manifest注册intentFilter通过priority标签可设置有序广播的优先级,有序广播两个接收器action一样正常都会收到消息,按自身设置的priority优先级接收,高的可以阻断让低的收不到。

2023-12-03 22:40:35 1135

原创 展开说说:Android之Activity的intent-filter匹配

现在说说intent-filter匹配规则:1、action、category、data如果intent-filter中前面三者都定义了就需要分别匹配成功了才能启动对应的Activity;2、具体规则2.1 action,是一个字符串可以使用系统预定义的也可以自定义,一个intent-filter可能包含多个action,intent设置的action只需要匹配其中一个即为成功。2.2 category也是一个字符串,可以使用系统预定义的也可以自定义,intent如果设置了category

2022-10-25 23:28:50 1137 1

原创 Error:No such property: GradleVersion for class: JetGradlePlugin

Error:No such property: GradleVersion for class: JetGradlePlugin,问题关键所在是gradle版本和gradle插件版本没有对应,将两者对应问题便迎刃而解。

2022-10-22 10:42:35 1396

原创 展开说说:Android之Activity的生命周期

生命周期即事物从诞生到结束的过程。activity有七个生命周期方法分别对应一个activity从诞生到销毁的七个关键节点,它是由Android主动通知我们的,我们只需要在这些方法内处理这个时间点应该做的事情即可。举个例子每天清晨会有闹钟提醒我们起床美好的一天从现在开始、然后这一天中铃声还会提醒我们上课、下课、吃午饭、午休结束,下午开始上课、下课,最后是放学铃声响起这一天的学习结束。

2022-10-05 12:55:13 1233

原创 Android studio编译报错AAPT2 error: check logs for details

aapt 是Android Asset Packaging Tool的缩写,是编译和打包资源的工具。而aapt2是在aapt上做了优化。Android Gradle Plugin 3.0.0或者更高版本默认开启aapt2进行打包。As左上角点击File - invalidate caché/restart Android Studio - invalidate and restart 清理缓存并重启Android studio。才疏学浅,如有问题,欢迎指正,多谢。二 在此提供三个解决办法协助排查。

2022-09-25 22:45:39 1068

原创 展开说说:Android之dimens文件使用

选中res - 右击 - new - Android Resource File,文件名填写dimens、type选择Values(默认)点击ok。@demin/ 加 dimen的name属性即可使用其定义的value值。在dimens.xml写入内容,比如字号、宽高。才疏学浅,如有问题,欢迎指正,多谢。四 java文件使用。

2022-09-25 18:30:05 1762

原创 lAndroid studio编译项目报错:Program type already present: xx.xx.xx

Android studio在编译项目时,报错:Program type already present: xx.xx.xx,相信这个问题很多朋友都有遇到过,其实是依赖包冲突了,在工程内全局查找冲突的这个文件类名,定位到所在的jar包,发现一个以上的地方引入了这个jar包。第二个办法在app的下build.gradle中的defaultConfig节点配置,排除其他moudle引用的该jar包,不使用其进行编译。第一个办法就是删掉多余只保留一个包即可,重新构建就解决了。exclude '路径/jar包名'

2022-09-03 19:30:41 889

原创 OutOfMemoryError: Java heap space gradle compiling android,as编译报oom

前几天运行一个开源项目始终编译失败OutOfMemoryError: Java heap space gradle compiling android,经历了clear、Invalidate and restart无果,各种搜索最后得以解决希望能同样帮助您解决问题。提供四种方法,第四种一定要看!!!前三种都是是针对项目的而第四种是针对as的。项目根目录下面: gradle.propertiesorg.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m .

2021-05-16 18:13:31 356

原创 Android Studio代码红色报错但可以编译运行

有四种方法可行:1.删除项目的.gradle文件,重新编译。2.点击AndroidStudio菜单File -> Invalidate Caches/Restar,点击Invalidate and Restar 清理缓存重启。3.点击AndroidStudio菜单File ->close project然后把本项目从AndroidStudio的列表中删除,打开Android...

2019-03-29 23:13:32 2223

原创 完美解决:Caused by: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

非常感谢您能看到这篇博客,网上很多解决该问题的办法但是不外乎:1.修改Gradle Scripts下的gradle.properties文件中加一句android.enableAapt2=false,本人试了重启没用。2.compileSdkVersion 和targetSdkVersion以及v7包大版本统一,重启as没用。无奈只能自己找解决之道,首先分析:1.场景:大部分发...

2019-03-24 23:11:24 3563

原创 常见bug:Caused by: java.lang.ArithmeticException: divide by zero

除数不能为零,检查有没有运算时除数为零了(关注一下获取控件宽高的地方)。

2019-03-24 22:51:39 1402

原创 一个Android开发人员该知道的那些事

启动页动画 广告登陆记住密码 自动登录 找回密码 三方登录主页面导航栏(搜索框和Menu菜单) ViewPage Fragment界面 底部导航栏 搜索 设置页(用户信息,应用信息,应用退出及账号切换)   额外业务: ===================其他可能用到的======================常见业务搜索框弹出界面的搜索 设置页(...

2019-02-24 13:45:51 176

原创 完美解决使用so库报错:java.lang.UnsatisfiedLinkError: 详情是.so: has text relocations

使用第三方so库经常会启动闪退遇到这个问题java.lang.UnsatisfiedLinkError: 。。。。各种找不到底层方法,查资料可能是常见的两条:1.包名和类名一定要和底层一直    2.部分人说armeabi和armeabi_v7以及x86三个文件夹里面的so文件必须一致(个人认为这条不一定)。如果您是在5.0及以上系统运行的话可以尝试用个4.0系统的模拟器运行一下如果低版本可以高版...

2018-04-08 19:44:32 1008

原创 Sending signal. PID: 8561 SIG: 9

进最近遇到了这个错误,不能定位到具体

2017-09-10 15:36:51 19087

原创 手机定位:获取我的位置经纬度

最近做一个关于 手机定位的功能,自己记录一下,一来加深记忆,二来希望能给大家一点思路,代码亲测有效。直接贴代码:清单文件要加的权限,代码中还有动态权限申请android:name="android.permission.ACCESS_FIND_LOCATION" />android:name="android.permission.ACCESS_COARSE_LOCATION"

2017-09-10 14:44:22 7071

原创 Studio给模拟器打电话,发短信没有中文乱码

之前Eclipse在DDMS的Emulator Control发短信打电话没问题后来转studio也没用过相关的功能今天做短信备份发现打开studio的Emulator Control是这样的查资料发现这个功能方便多了短信还不会中文乱码:点击模拟器的右侧导航栏底部的 ... 选择 phone

2017-06-07 09:56:40 752

原创 最新Android的SDK版本与API Level的对应关系

Android 13.0 API Level 33Android 12L API Level 32Android 12.0 API Level 31Android 11.0 API Level 30Android 10.0 API Level 29

2017-06-02 15:02:36 3264

原创 Information:Gradle tasks [:app:clean, :app:generateDebugSources和transformClassesWithJarMergingForDeb

Error:Execution failed for task ':BaiDuDiTu:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/baidu/locat

2017-05-30 10:02:47 9328

原创 Android studio 设置五颜六色的logcat

怎样快速找出并解决bug应该是每个攻城狮一直探索的事情,那么第一步就从设置五颜六色炫酷的logcat开始吧。直接上图咯,五步走战略:1.Ctrl+Alt+s快捷键进入studio  settings界面,在输入框搜索logcat进入logcat设置界面,图中1的部分2.图中2的部分可能显示Default,切记这里一定要点击旁边的“Save As”自己新建一个style(名字自己取,不重

2017-05-18 07:32:31 1287

空空如也

空空如也

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

TA关注的人

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