自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (8)
  • 收藏
  • 关注

原创 Spring boot maven多模块打包踩坑

最近折腾了两次spring boot在maven下的多模块打包,踩了很多坑,现在记录如下。 项目目录: - 项目 P - 模块 A - 模块 B - 公有基础模块 C - Mybatis基础模块 M父pom.xml文件: <!--版本号--> <groupId>com.parent</groupId> <artifactId>demo</artifactId> <ver

2017-11-03 11:13:59 33768 11

原创 动态规划在算法中的实践

为了提高算法的效率,动态规划是在算法实践中经常使用的一个思想,有些问题会非常适合使用动态规划的思想来设计算法。本文将借助LeetCode上的一些例子,来讲解和说明动态规划在算法案例中的一些实践。

2024-03-12 14:42:57 1274 1

原创 哈希思想在算法中的实践

为了提高算法的效率,哈希思想是在算法实践中很有用的的一个方法,合理运用哈希思想来解决算法问题,可以有效的帮助我们解决算法问题,尤其是有些问题非常适合使用哈希思想来解决。本文将借助LeetCode上的一些例子,来讲解和说明哈希思想在算法案例中的一些实践案例。

2024-03-12 14:41:10 780

原创 使用python为aab签名和生成apk

生产aab格式的文件后,为了上传到google play还需要签名的,还有从生成aab到生成可以安装用的apk要花蛮多步骤的。所以,这里用Python做下自动化简化下步骤其中是来自于https://github.com/google/bundletool/releases 可以替换成你自己需要的jar使用方法是:或者,在Android项目中的,新建一个task,可以替换成自己需要的文件目录然后使用下面的命令就可以上传了。本项目地址存放在,https://github.com/SerBad/RunB

2022-07-06 14:39:30 1067 1

原创 使用python自动上传apk到蒲公英

新建文件,代码如下在Android项目中的,新建一个task,可以替换成自己需要的文件目录需要注意的是,新版本的apk不在outputs下面了,是在下面。然后使用下面的命令就可以上传了。

2022-07-06 13:26:57 872

原创 Messenger传输大的数据

Messenger作为跨进程,是很常用的方法,轻便,已经基于AIDL做了很多的封装了,但是这个方法只能传输比较小的数据,如果要传输大一些的数据咋办呢?可以使用Bundle.putBinder,我这里做个记录:首先创建一个aidl,GetLargeOne.aidl// GetLargeOne.aidl// Declare any non-default types here with import statements//为了解决传输数据量很大的时候处理的情况interface GetLarge

2021-10-09 16:07:09 253

原创 Room数据库迁移记录

记录一下Room数据库迁移过程中遇到的问题。要迁移Room数据库,只要需要实现androidx.room.migration.Migration即可。下面记录三种情况修改表的结构object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { // 创建新的临时表 database.execSQL("CREATE TABLE publish_post_bea

2021-02-23 14:56:53 234

原创 Android使用ActivityResultContract

从AndroidX的Activity 1.2.0-alpha02 和 Fragment 1.3.0-alpha02开始,startActivityForResult被标注为弃用了,因为多了一种新的办法,这里做个记录。新建一个自己的契约类ActivityResultContract,继承自ActivityResultContract,写上自己要传入的参数和要返回的结果。class PersonalActivityResultContract : ActivityRe

2021-02-23 14:45:13 1579 2

原创 分享一段ViewPager2中RecyclerView滑动的问题

在ViewPager2中插入RecyclerView,滑动过于敏感,下面记录一种方法,其实就是重新处理事件分发。

2021-01-28 10:19:23 802 1

原创 ViewModel中传入Context的方法

ViewModel使用的越来越多了,严格来说,官方并不建议你在ViewModel中添加Context的引用。同时,ViewModel的构造方法是没有任何参数的,有的时候会很不灵活。以下记录两种方法。#1.通过kotlin的拓展函数fun <T : ViewModelProvider, V : ViewModel> T.get( key: String, modelClass: Class<V>, context: FragmentActivity):

2020-12-24 16:29:41 4419 2

原创 分享一段Android权限设置的代码

检查是否有通知栏权限NotificationManagerCompat.from(context).areNotificationsEnabled()打开通知栏权限设置页import android.content.Contextimport android.content.Intentimport android.net.Uriimport android.os.Buildimport android.provider.Settingsobject NotificationUtil {

2020-11-23 14:41:16 493

原创 新版gradle移除versionCode和versionName的问题

从com.android.tools.build:gradle:4.1.0开始,build.gradle文件正式移除了versionName和versionCode,参照链接。如果依然需要BuildConfig.VERSION_NAME的话,可以使用如下方式buildConfigField "int", 'VERSION_CODE', String.valueOf(1)buildConfigField 'String', 'VERSION_NAME', "\"" + "1.0.0" + "\""但

2020-11-23 14:29:51 1118

原创 Android一个标签页的实现

最近要实现一个类似于下面的页面想着每次都要自己重新写,太麻烦了,这里记录一下自己写的自定义的view。一开始本来准备用ConstraintLayout的,但是这货addview的时候总有bug,就用RelativeLayout了。package com.android.demo.viewimport android.content.Contextimport android.util.AttributeSetimport android.view.Viewimport android.wid

2020-11-02 11:25:38 507

原创 记录一个PIL把透明背景转成白色背景的方法

起先在百度上搜到的文章,的确可以做到透明背景转成白色背景,但是缺陷非常严重,会导致图的背景产生很多像素点,而且效率也不是很高。又经过了一番搜索之后,发现了一个更好的办法。from PIL import Imagetry: imagePtah = 'your image file path' img = Image.open(imagePtah) if img.mode != 'RGBA': image = img.convert("RGBA") wid

2020-06-15 14:54:27 1899 2

原创 多模块下的页面跳转

在多模块下或者组件化下,页面跳转是比较麻烦处理的一个地方,下面记录一下跳转的方法。以下应用包名统一用com.android.demo来指代。BroadcastReceiver使用广播是最简单的办法,可以通过注册广播来处理页面跳转。需要注意的是,从7.0开始广播开始受到限制,对于应用广播,可以用以下方法,到10.0及以下都是可以在多种机型上可以的。同样的,也可以用Activity来处理。基本逻辑是一样的,这里不再赘述。在AndroidManifest.xml,permission和uses-permis

2020-06-11 14:13:16 640

原创 Android子模块下productFlavors的配置

以下文章说明中,_android、_test、_google代表的是Flavors,debug和release代表的是buildTypes,提前说明,根据你自己的项目需要,也许有所不同。在多模块下,子模块的Flavors该如何设置呢?其实不用什么特别的设置,只需要子模块保持和主模块一样的Flavors就行,然后按照以下来引用就好了。需要注意的是,两者要保持一致,只许子模块比主模块的Flavors...

2020-04-20 15:33:39 1916

原创 Android透明度百分比对应的十六进制

Android透明度百分比对应的十六进制

2019-11-25 23:23:45 429

原创 Android关于裁剪图片透明区域的算法

最近项目中遇到这么一个需求,需要裁剪掉图片的透明区域。找了很久,最后确定,只能通过自己读取Bitmap的像素点来读取图片的边界来裁剪。下面记录一下过程。原图如下PorterDuffXfermode最开始想的是使用PorterDuffXfermode来处理,因为这种方式其实很快的,但是,虽然这种方式可以用来处理图片,但是无法满足获取图片边界的需求。代码如下: public stati...

2019-05-27 17:12:04 1763 3

原创 Android加载animated webp的控制和Glide加载GIF

因为动态的webp使用的也越来越多了,所以这里记录一种加载处理的办法。目前常用的Android图片加载库,只有fresco是可以直接加载animated webp的。那么如何处理呢?记录一下,不然坑都白踩了。本质上webp和gif都是一组图片组成的连续图片,如果要单独解析每一帧怎么办呢。Android支持如果要拿到webp的第一帧,在Android以上是可以直接使用如下这种方法,默认取的是第一...

2019-03-08 13:26:52 1313

原创 Glide4的一次踩坑记录

如果你用图片加载库直接加载图片,并不需要做任何处理,那么,其实大多数时候你用任何加载库并没有太大的区别。一旦你需要处理各种各样的图片的时候,你就会遇到各种各样的问题了。这里记录一个关于Glide的问题,一下都是Glide4.9版本。在Glide中加载图片,可以很简单,类似于这样就可以了: Glide.with(context) .load(url) .into(im...

2019-03-06 15:14:41 734

原创 Android共享元素

在这里记录一下android共享元素的方法,踩了满多坑的,其实蛮简单的,Android共享是从Android5.0开始提供的,之前的版本我没有去碰兼容,但是其实是有解决方法的。这里只是记录一下踩过的坑,不对共享元素做深入的分析。首先从页面A跳转到页面B,那么页面A只需要调用ActivityCompat.startActivity(context, intent, ActivityOption...

2019-02-25 11:03:19 969

原创 Docker在PHP中的实践过程

最近微服务很火,很多人都在尝试,我们公司也在这段时间尝试着来时间微服务化,其中就涉及到Docker。 在实践docker中踩了很多坑,也对Docker有了更多的认识,下面记录一下。 Docker在打包Spring boot项目时候,因为Spring boot内部集成了tomcat并且提供了直接打包成jar包的方式,Spring boot如何打包。Dockerfile文件如下:FROM java:

2017-09-18 15:25:50 862

原创 Docker安装问题

Windows7 Windows7安装docker的时候,困扰了好久没有安装成功,今天终于试成功了。 之前一直报boot2docker找不到,仔细检查了报错的日志信息,其中一条就是下载boot2docker失败,但是我明确自己是下载成功的,最后直接把boot2docker.iso 放到 C:\Users\user\.boot2docker 就好了,然后就可以直接运行了。Windows10win1

2017-07-10 13:44:25 401

原创 Retrofit添加公共请求参数以及添加自定义的ConverterFactory

public class HttpBaseInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request oldRequest = chain.request(); // 添加新的参数

2017-05-27 16:16:37 1482

原创 Windows右键新建md文件

因为经常使用markdown,所以会遇到新建.md 文件的时候,会很麻烦。记录下Windows下右键新建.md 文件的方法:打开注册表 regedit ,在目录 HKEY_CLASSES_ROOT 下新建.md 项,然后把默认值修改为.md。 然后在.md 项下再新建项ShellNew ,然后在该项下面新建字符串值FileName ,该字符值选择为,你新建的模板地址,比如我存放模板的位置是C:\U

2017-05-09 13:17:34 2372 5

原创 Android微信支付踩坑全记录

首先吐槽一下,微信支付的文档和微信提供的demo实在是惨不忍睹,折腾了好久才终于搞定了。

2017-04-17 11:15:24 583

原创 gson-typeadapter

最近项目中遇到一个问题,就是Gson解析的时候遇到一个为空的数组,这种时候如果忽略后台优雅地解决这个问题呢?答案就是——Gson 的序列化和反序列化

2017-03-21 01:09:51 466

原创 一份有用的Android 混淆规则

#指定压缩级别-optimizationpasses 5#不跳过非公共的库的类成员-dontskipnonpubliclibraryclassmembers#不跳过非公共的库的类-dontskipnonpubliclibraryclasses#混淆时采用的算法-optimizations !code/simplification/arithmetic,!field/*,!class/mer

2017-03-16 13:05:53 831

原创 Android 消息框显示天数

public static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); public static SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

2017-03-07 14:24:55 364

原创 Android动画被父控件遮盖的问题

Android动画被父控件遮盖的时候,在根布局上设置两个属性就可以了!1.clipChildren用来定义他的子控件是否要在他应有的边界内进行绘制。 默认情况下,clipChildren被设置为true。 也就是不允许进行扩展绘制。2.clipToPadding用来定义ViewGroup是否允许在padding中绘制。默认情况下,cliptopadding被设置为ture, 也就是把padding中

2017-02-15 14:45:30 2586

原创 Android文件下载,解压zip文件,清空文件夹

//保存retrofit下载下来的ResponseBody文件 public static File writeResponseBodyToDisk(okhttp3.ResponseBody body, String name) { try { File myDir = new File(Environment.getExternalStorageDirec

2017-02-10 18:01:44 2803

原创 Android控制音频播放速度及获取raw资源

最近遇到一个控制音频播放速度的问题,常用的方法是使用SoundPool。但是这个方法有一个问题就是在我的努比亚努比亚手机上只能播放3秒,我没有在源码里面找到设置的地方,但是打印的日志信息里面有这么一条:D/MMParserExtractor: Using default parser out buffer size = 3000,而且只能播放本地文件或者保存在raw中文件,无法直接播放网络文件,只

2016-12-21 14:41:29 4451 2

原创 当前activity截图以及包含打开的dialog

当前activity截图以及包含打开的dialog,没有找到官方提供的截图方法,当前方法是读取要截图的view的缓存然后绘制称为图片,要保存打开的dialog,如果需要背景,那就把背景绘制到一起,就可以了。

2016-08-25 13:47:10 1699

原创 获取软键盘高度和生成9-patch

最近在做一个类似聊天的功能,所以需要获取到软键盘的高度来控制界面的显示,同时有一些手机上面有虚拟按键,在界面布局的时候需要注意。下面的代码就是一段获取手机软键盘高度的办法。

2016-08-24 21:04:46 576

原创 关于SharedPreferences的一次问题

SharedPreferences

2016-06-01 15:41:38 555

原创 关于错误INSTALL_FAILED_NO_MATCHING_ABIS

故事的起因就是因为在往genymotion安装的应用的时候,出现了INSTALL_FAILED_NO_MATCHING_ABIS。 因为android平台的多样性,针对不同的CPU架构于是就有了ABI(Application Binary Interface,)。目前android支持的ABI有:armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips、mip

2016-04-28 17:22:57 495

原创 RecyclerView的使用学习

最新在项目中使用了Android L出现的新控件RecyclerView,把学习的过程都贴出来,便于日后查询。RecyclerView提供了四种配置: RecyclerView.LayoutManager RecyclerView.Adapter< VH extends RecyclerView.ViewHolder > RecyclerView.ItemDecoration

2016-04-16 11:47:35 428

翻译 翻译:如何在Node.js和Express中使用MySql

连接到mysql数据库在这之前先安装正确的npm包: npm install mysqlmysql 是一个非常容易使用的模块,它提供了你可能需要的所有功能。安装好后,你需要连接数据库的方法是:var mysql = require('mysql')var connection = mysql.createConnection({ host: 'localhost', user: 'yo

2016-04-16 01:38:09 632

原创 Android动画

关于android的动画效果义工有三种 View Animtion 即 tweened animation 补间动画 Drawable Animation 即 frame-by-frame animation 帧动画 Property Animation 属性动画

2016-04-14 10:19:07 405

原创 android获取屏幕的高低

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-03-30 14:14:23 389

leadbolt.zip

包含全部的leadbolt开发资源包

2015-01-22

unity-ads-sdk-master.zip

unity-ads-sdk-master.zip ,开发SDK,android平台

2015-01-09

FlurryAds-5.0.0.jar

FlurryAds-5.0.0.jar,Flurry开发SDK,android平台

2015-01-09

FlurryAnalytics-5.0.0.jar

Flurry开发SDK,分析类的SDK,android平台

2015-01-09

vungle-publisher-adaptive.zip

vungle开发SDK,android平台

2015-01-09

facebook-android-sdk-3.22.0.zip

这是一个一个关于facebook开发SDK,android平台的

2015-01-09

synergy-1.6.2.tar.gz

ubuntu系统下面的synergy-1.6.2,因为现在在ubuntu直接下载的是1.4.10,在windows下面的是synergy-1.6.2.tar,所以这个正好够用,注意是64位系统的。

2015-01-09

adcolony.jar

adcolony开发SDK,http://www.adcolony.com/

2015-01-09

空空如也

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

TA关注的人

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