自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The blog of CSDN in 杨天福

更多精彩内容,请关注微信公众号:ytf0422

  • 博客(369)
  • 资源 (16)
  • 论坛 (1)
  • 收藏
  • 关注

原创 JNI中Native方法的注册方式

文章目录JNI中native方法注册native方法静态注册native方法动态注册数据类型转换方法签名:使用javap自动生成方法签名JNIEnvJNI中native方法注册jni是Java Native Interface的缩写,Java本地接口,是Java与其他语言(native语言)通信的桥梁Native方法注册分为静态注册(多用于NDK开发)和动态注册(多用于framework开发)native方法静态注册AndroidStudio中新建一个lib包,本例仿照MediaRecord

2021-07-16 17:32:15 37 6

原创 ServerSocket和Socket连接

文章目录概述:Socket和浏览器通信连接和通信Socket保持连接通信概述:ServerSocket类 TCP协议,服务器端,通过serveSocket.accept();方法获取socket实例Socket类 TCP协议 通过new Socket()获取实例,创建Socket对象的时候则需要声明一个IP地址和ServerSocket对象的端口号,这样才能对服务端发出连接请求客户端上的使用1.getInputStream方法可以得到一个输入流,客户端的Socket对象上的getInputS

2021-07-13 15:44:35 18

原创 AndroidStudio编写测试类运行报错:Could not create task :app Test.main()

* Where:Initialization script 'C:\Users\Administrator\AppData\Local\Temp\TestTest_main__.gradle' line: 21 * What went wrong:A problem occurred configuring project ':app'.> Could not create task ':app:TestTest.main()'. > SourceSet with name 'm

2021-07-13 13:20:35 34

原创 剔除重复依赖

标题类似 More than one file was found with OS independent path ‘META-INF’app的build.gradle中添加剔除android{ packagingOptions { exclude 'META-INF/**' exclude 'lib/arm64-v8a/libmediaplayer.so' }}

2021-04-23 17:25:39 2648

原创 使用AndroidViewModel初始化报错

Caused by: java.lang.RuntimeException: Cannot create an instance of class com.aiways.dmsgallery.vm原因是无法创建带参数的构造方法,原因是 ViewModelProvider默认创建无参的构造方法,如果有参数的构造方法将无法正常创建。而 AndroidViewModel 需要使用带 application参数的构造方法创建,解决办法是使用AndroidViewModelFactory创建AndroidVi.

2021-04-22 16:51:24 3099

原创 APK反编译的方法(未混淆)

文章目录需要的工具反编译方法过程需要的工具下载地址:链接:https://pan.baidu.com/s/1kEvmRyTQUp7ujnvsfELJZA 提取码:sb8m 复制这段内容后打开百度网盘手机App,操作更方便哦apktool 资源文件获取, 可以提取出图片文件和布局文件进行使用查看dex2jar 将apk反编译成java源码,将classes.dex转化成 .jar文件jd-gui 查看APK中classes.dex转化成出的 .jar文件,即源码文件反编译方法过程

2021-04-13 14:47:35 4423

原创 Binder机制和AIDL通信示例

文章目录介绍Binder工作流程AIDL通信实例介绍 Binder由四部分组成:Binder客户端、Binder服务端、Binder驱动、服务登记查询模块。Binder客户端是想要使用服务的进程。Binder服务端是实际提供服务的进程。Binder驱动:1.客户端先通过Binder拿到一个服务端进程中的一个对象的引用,2.通过这个引用,直接调用对象的方法获取结果。3.在这个引用对象执行方法时,它是先将客户端方法调用的请求传给Binder驱动;4.然后Binder驱动再将客户端请求传给服

2021-04-01 18:46:17 4425

原创 Jetpack之ViewModel和LiveData的用法

文章目录ViewModel介绍ViewModel实例化ViewModel源码创建使用ViewModel与onSaveInstanceState()的区别ViewModel介绍ViewModel将页面所需的数据从页面剥离出来,页面只需要处理用户交互和展示数据。是介于View(UI)和Model(数据)之间的桥梁,使得视图和数据既能够分开,又可以保持通信。ViewModel 独立于配置变化之外,例如activity旋转时页面会重建,生命周期也会结束后重新开始,但是这期间并不会影响ViewModel的生命

2021-03-10 21:04:24 7601

原创 Navigation和NavigationUI的使用

文章目录navigation的主要元素navigation的主要元素Navigation Graph 一种xml资源文件,包含应用所有的页面以及页面之间的关系,也就是fragment的放置的地方,NavHostFragement 一种特殊的fragment, 可以理解为fragment的容器,是fragment展示UI的地方,Navigation Graph中的fragment通过NavHostFragement展示...

2021-03-09 20:21:31 7751

原创 使用lifecycle解耦页面与组件

文章目录Lifecycle原理介绍Lifecycle对Activity生命周期监听Lifecycle对Service生命周期监听ProcessLifecycleOwner监听APP的前后台Lifecycle原理介绍Jetpack为我们提供了两个类,LifecyleOwner(被观察者)和LifecyleObserver(观察者),通过观察者模式实现对页面生命周期的监听。Lifecycle对Activity生命周期监听绑定activity的生命周期class LifeCycleListene

2021-03-05 20:29:59 7475

原创 Apk瘦身压缩体验

文章目录资源统一资源统一尽量一个项目使用同一套资源,对于绝大对数APP来说,只需要取一套设计图就足够了。鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录。相对于多套资源,只使用720P的一套资源,在视觉上差别不大,很多大公司的产品也是如此,但却能显著的减少资源占用大小,顺便也能减轻设计师的出图工作量了。不是xhdpi的目录都删除,而是强调保留一套设计资源就够了。资源图片引入前先进行压缩,不使用原图,...

2021-02-03 21:03:14 7519 2

原创 加密和编码解析

文章目录古典密码学移位式加密替换式加密现代密码学对称加密⾮对称加密签名与认证:hash算法编码和解码Base64编码URL 使⽤的百分号编码压缩与解压缩编码序列化古典密码学起源于古代战争:在战争中,为了防⽌书信被截获后重要信息泄露,⼈们开始对书信进⾏加密。移位式加密如密码棒,使⽤布条缠绕在⽊棒上的⽅式来对书信进⾏加密加密算法:缠绕后书写 密钥:⽊棒的尺⼨替换式加密按规则使⽤不同的⽂字来替换掉原先的⽂字来进⾏加密。现代密码学可以加密任何⼆进制数据⾮对称加密的出现使得密码学

2021-01-29 21:38:50 6701

原创 MultiTypeAdapter在recycleView中的使用和点击

文章目录概述一个itemViewBinder多种item数据类型多类型item数据注册显示效果图概述RecycleView中多种数据结构的item进行解耦,单一职责显示多种类型的item布局MultiTypeAdapter会给items中每一种类型的itemData找到对应的itemViewBinder进行数据绑定一个itemViewBinder/*** Author: yangtianfu* Date: 2021/1/28 20:13* Describe:每一种itemViewBind

2021-01-28 21:15:46 6739 1

原创 kotlin中自定义TextView之drawableLeft与文本一起居中显示

import android.annotation.SuppressLintimport android.content.Contextimport android.graphics.Canvasimport android.util.AttributeSetimport android.widget.TextView/*** Author: yangtianfu* Date: 2021/1/25 18:08* Describe:drawableLeft与文本一起居中显示*/@Su.

2021-01-25 18:32:51 6716

原创 Android开发自定义view统一验证码输入框

文章目录布局文件自定义view输入监听布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout

2020-12-23 10:45:45 6099

原创 使用CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout打造折叠状态栏

文章目录布局监听CoordinatorLayout 属性AppbarLayoutCollapsingToolbarLayout效果图布局<?xml version="1.0" encoding="utf-8"?><layout xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" tools:ignore="ResourceN

2020-11-26 16:25:16 6134

原创 ScrollView高度不能充满全屏

android:fillViewport 属性解决ScrollView高度不能充满全屏的问题 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:scrollbars="none" >...

2020-11-25 13:56:55 5404

原创 selector中使用state_enabled设置自定义控件可变背景drawable

<?xml version="1.0" encoding="utf-8"?><selector xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" tools:ignore="MissingDefaultResource"> <item android:state_enabled="false"

2020-11-25 13:55:16 5356

原创 Kotlin中关于DataBinding

文章目录android:visibility 可见性绑定和onClick绑定数据单向绑定的问题(数据改变更改视图)点击事件监听数据双向绑定问题调用类中的方法::Unresolved reference: BR常量值和变量组合绑定databinding中使用逻辑与运算符&&android:visibility 可见性绑定和onClick绑定 <data> <import type="android.view.View"/> <v

2020-11-13 17:34:28 5372

原创 Activity中多fragment使用NavHostFragment导航用法

文章目录创建navigation容器activity中引用fragment容器容器中在design视图下创建fragmentfragment间跳转fragment跳转动画转场动画创建navigation容器创建存放fragment的navigation容器容器nav_container,用来放fragment<?xml version="1.0" encoding="utf-8"?><navigation xmlns:android="http://schemas.andr

2020-09-18 16:27:25 8780 1

原创 kotlin中TabLayout和ViewPager2自定义tabview

文章目录xmltabview自定义item布局(tabIndicator底部指示器)动态tab数据ViewPager2适配器FragmentStateAdapterUI调用xml <com.google.android.material.tabs.TabLayout android:id="@+id/tab_layout_tips" android:layout_width="match_parent" andr

2020-09-17 16:14:36 6034

原创 自定义Switch备份

<Switch android:id="@+id/switch_bluetooth" android:layout_width="wrap_content" android:layout_height="31dp" android:switchMinWidth="51dp" app:layout_constraintRight_toRightOf="parent"...

2020-08-26 14:27:26 5260

原创 ViewPager2画廊效果

fun Int.dpToPx(displayMetrics: DisplayMetrics): Int = (this * displayMetrics.density).toInt()fun Int.pxToDp(displayMetrics: DisplayMetrics): Int = (this / displayMetrics.density).toInt()使用10.dpToPx(context.resources.displayMetrics)

2020-07-02 16:30:46 6026 1

原创 腾讯Matrix应用性能接入框架使用

文章目录Matrix Android ApkChecker创建的文件生成的文件Matrix Android ApkCheckerhttps://github.com/Tencent/matrix/wiki/Matrix-Android-ApkChecker jar包下载地址:https://jcenter.bintray.com/com/tencent/matrix/matrix-apk-canary/0.6.5/matrix-apk-canary-0.6.5.jar 创建检测报告

2020-06-30 19:29:00 6756

原创 BindingAdapter(kotlin自定义数据绑定)

ImageView@BindingAdapter("imageFromUrl")fun bindImageFromUrl(view: ImageView, imageUrl: String?) { if (!imageUrl.isNullOrEmpty()) { Glide.with(view.context) .load(imageUrl) .transition(DrawableTransitionOpti..

2020-06-01 16:58:26 6236

原创 AndroidStudio在部分机型上(vivo x30) 无法安装调试apk解决办法

异常Installation did not succeed.The application could not be installed: INSTALL_FAILED_TEST_ONLYInstallation failed due to: 'null'解决办法: grade.properties文件添加android.injected.testOnly=false

2020-05-25 21:14:02 7638

原创 kotlin新建项目的报错和自定义kotlin中的loge的live template

Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveEproject项目下的build.gralde使用阿里镜像buildscript { ext.kotlin_version = '1.3.60' repositories { maven { url 'http://maven.aliyun.com/nexus/con.

2020-05-22 17:10:59 7202

原创 基于node的Commitizen git提交模板

文章目录Node.js环境变量配置环境配置安装镜像安装cz工具Commitizen适配器cz-conventional-changelogNode.js环境变量配置node.js的安装目录新建两个文件夹node_global和node_cache在cmd窗口中输入以下命令(两个路径即是两个文件夹的路径)npm config set prefix "C:\Program Files\nodejs\node_global"npm config set cache "C:\Program File

2020-05-20 21:09:14 7283

原创 ExpandableListView展示二级列表(Kotlin)

文章目录ExpandableListView使用BaseExpandableListAdapter展示二级列表ExpandableListView使用 <ExpandableListView android:id="@+id/exp_list_view" android:layout_width="match_parent" android:layout_height="wrap_content"

2020-05-16 17:09:56 7668

原创 RecyclerView滚动到指定位置(Kotlin)

/** * RecyclerView滚动到指定位置 */var mToPosition:Int = 0 // 记录目标项位置var mShouldScroll:Boolean = false // 目标项是否在最后一个可见项之后fun smoothMoveToPosition(mRecyclerView: RecyclerView,position:Int){ // 第一个可见位置 var firstItem = mRecyclerView.getChildLayoutPosit.

2020-05-11 23:22:15 7271

原创 gradlew常用命令笔记

查看错误信息:gradlew compileDebugSources.\gradlew compileDebug --stacktrace.\gradlew compileDebugSources 查看依赖gradlew :app:dependencies 查看依赖关系./gradlew :app:dependencies –configuratio...

2020-05-05 20:46:27 7162

原创 kotlin 基础API(中缀表达式,委托,伴生对象,数据类)

data class SendCmdBaseDto ( val vin: String, val remoteType: String, val commandType: String, val type: Int, val seqNo: String, val securityPassword: String?, val temp:Stri...

2020-05-04 21:25:57 7478

原创 Android 10 本地PDF文件写入和打开方式适配

文章目录下载PDF后的responseBody写入本地Android10以下写入android 10 以上写入使用腾讯tbs内核在webview中直接打开本地PDF文件直接打开本地PDF文件隐式调用第三方应用打开PDF下载PDF后的responseBody写入本地 val responseBody = downLoadResponseBodyBean.respone ...

2020-04-28 23:22:54 7280 3

原创 kotlin代码格式化设置优化

去掉下方方框内的勾选将下方三个参数值改为 2 2 4

2020-04-26 14:31:56 7034

原创 Canvas绘制自定义view的颜色PorterDuffXfermode的选择

自定义view样色色差问题自定义view在动态设置颜色的时候可能UI显示的效果和自己设置的值不一样,这个就是你的view中颜色层叠方式不太对,使用 Paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OVER));给画笔这个Xfermode,各种效果如下图所示完整自定义view仿照电池充电时电量的自定义view...

2020-04-22 14:55:03 5820

原创 kotlin中使用Flutter-Boost混合开发的传值跳转问题

文章目录使用场景目录结构效果图Android工程集成flutter-boostflutter moudle中使用flutter-boostAndroid Native端注册 flutter-boostAndroid跳转Flutter传参Flutter跳转Android传参使用场景 对于一些业务功能单一或者只是用来展示而没有过多交互的页面,比如登录页面或者商品列表页,只是为了给用户展示,这种页...

2020-04-18 22:44:28 7195

原创 Vscode配置flutter环境打开dart文件报红线

文件——首选项——设置,搜索fluttersdkpath安装完flutter和dart插件后打开dart文件报红线,很可能是因为没有配置flutter的SDK路径 "dart.flutterSdkPath": "C:/Users/user/flutter"...

2020-04-18 13:16:39 6608 1

原创 kotlin中关于下载查看PDF并更新下载进度问题

文章目录定义接口发起请求将PDF写入本地并更新进度基于腾讯内核自定义webview进度条weiview打开本地PDF文件定义接口 @Streaming @GET fun downLoadPDF(@Url url: String):Call<ResponseBody>发起请求 getService(ServerApi::class.java).downLo...

2020-04-15 21:43:37 5851

原创 ARouter 传自定义对象获取值为null

传参 ARouter.getInstance() .build(RouterConstant.SERVER_TION_INDICATOR_LAMP) .withObject("ownerDashBoard",object) .navigation() 参数类不能...

2020-04-14 18:19:10 6362 2

原创 Kotlin中自定义dialog

文章目录效果dialog样式dialog 背景 common_dialog_bgdialog布局 base_common_dialog_layout全局工具类 CommonDialog(建造者模式)使用效果dialog样式 <style name="custom_dialog2" parent="@android:style/Theme.Dialog"> &...

2020-04-07 14:00:36 6486 1

Google Flutter官方文档详细翻译

Google平台的Flutter官方文档的中文版,电子书的格式,从环境配置到第一个demo的完成,以及常用UI效果的展示。

2018-07-16

绚烂起来的ConvenientBanner的轮播效果图

实现本地图片和网络加载图片的多种轮播效果图的任意切换(3D效果,翻转效果,淡入淡出效果,等等效果)

2017-07-24

二次贝尔曲线实现的购物车轨迹曲线

类似饿了么点餐页面,左右两个RecycleView相关联,点击左侧类别,右侧自动置顶,利用二次贝塞尔曲线公式绘制动画轨迹

2017-07-25

Android四大组件图解

安卓四大组件的概念和用法图解

2017-03-11

java 基础知识png

微信同号,欢迎指教

2017-01-06

TabLayout和ViewPager的经典漂移(实现底部Tab的图文混排合联动以及切换时数据同步问题)

改moudle实现了类似微信框架的效果,只用TabLayout和ViewPager以及fragment实现,简单的方式实现底部选项卡的图文混排以及和Fragment的联动,甚至可以同步切换数据,顺带实现了艺术字类型的Alerter通知栏

2017-07-24

HTML学习手册

2017-03-04

滑块拖动的依赖包(导入直接用)

滑块验证的自定义实现,可以随意更改样式,样色,和显示文字,自定义圆角大小

2017-08-21

Java基础知识点

Java基础知识点复习题

2017-02-13

仿微信框架开发

仿微信框架开发

2017-02-27

Java常用类别用法和进阶代码

Java常用类别用法和进阶代码

2017-02-13

Fragment数据相互

Fragment数据相互

2017-02-27

RecycleView与ViewPager的嵌套开发

RecycleView与ViewPager的嵌套开发

2017-02-27

安卓开发的API手册

安卓开发的API手册

2017-03-04

StartService和BindService实现播放音乐的样例

StartService和BindService实现播放音乐的样例

2017-03-08

ContentReslover动态获取手机联系人

ContentReslover动态获取手机联系人

2017-03-08

杨天福的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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