自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

原创 Jetpack系列学习笔记整理一 之LifeCycles

学习最好的途径就是官网和github Demo,先放链接,想看自行跳转:官网:https://developer.android.com/topic/libraries/architecture/lifecycle CodeLab:LifeCycle(官方小课堂...)Jetpack框架内容之前就接触过,但是一直没有好好系统学习,最近在忙项目还有弄cocos的东西,趁现在有时间了好好整理一下提升一下自己,毕竟google爸爸指明了方向给出了应用架构的方案。奥,大概长这样:Jetpac..

2020-12-26 16:57:20 261 2

原创 安卓Tinker热更新接入踩坑(minSdkVersion 21)

哎哟,这个坑啊。我项目采用的是ARouter+Tinker。我接入的是tinkerpathchttp://www.tinkerpatch.com/Docs/intro按照文档对接,我采用的是reflectApplication = true 就是一键接入不自己写application的这种。对接完成assembleReleaese编译完成,修改点代码执行tinkerPatchRelease操作打差异包,这时候问题来了,每次都报loader classes are found in old seconda

2020-06-15 17:55:17 1894

原创 手机抓包charles使用

使用的是charles-window。之前使过fiddler但是感觉并没有charles好用以及一目了然。链接: https://pan.baidu.com/s/1NMNXa8M4niLObQKIsCNL3A 提取码: 2wsa安装包可以通过连接下载,官网的下载速度简直慢到......下载完正常安装就可以。操作流程:1:配置charles 设置不代理计算机的请求 ...

2020-03-02 14:10:19 8221 1

转载 androidstudio wifi连接手机出现连接失败 由于目标计算机积极拒绝,无法连接。

解决方法:https://www.cnblogs.com/wisdomzhang/p/11669675.html

2019-10-16 10:04:36 1197

原创 CardView不显示阴影问题

app:cardPreventCornerOverlap="true"app:cardUseCompatPadding="true"需要加上zhel这两个属性,要不然没有显示阴影,还有就是在配置文件中添加kaiq开启硬件加速 android:hardwareAccelerated="true"...

2019-04-11 17:18:12 4648 1

原创 Flutter安装

1.Flutter的安装kesh可使用AndroidStudio自带的插件安装。2.安装重启Studio之后发现选择设备那 没有设备或者模拟器,原因是Flutter没有绑定android sdk 和 android studio。打开min命令窗,输入flutter config --android-sdk/path/to/android/sdk 绑定sdk,输入flutter conf...

2019-03-21 19:15:34 1248

原创 设计各种ViewPager页面的滑动动画

有的时候产品会要求Banner的各种滑动动画,比如一般都是用viewpager来做这种效果,那要是达到这种效果就需要自己实现ViewPager.PageTransformer接口。ViewPager.PageTransformer它只有一个需要重写的方法transformPage(View view,float position); view就是页面我们可以通过设置各种平移旋转等达到动画...

2019-03-21 14:54:34 755

原创 获取音频的时域频谱

通过MediaExtractor获取音频的信息。package com.goobird.common.basic.utils.audio;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.FileOutputStream;import java.i...

2019-02-11 14:28:07 2252 4

原创 BottomSheetDialogFragment + ViewPager+Fragment+RecyclerView 出现只有第一页列表可以滑动其他页不可滑动的情况。

BottomSheetDialogFragment + ViewPager+Fragment+RecyclerView这种样式出现的不多,所以前一阵做这类需求的时候遇到种种问题。主要的原因就是因为BottomSheetBehavior的findScrollingChild方法并没有有关ViewPager 更新查找子元素view的东西,所以它只能拿到一个页面去滑动,那么就需要对BottomShe...

2019-01-17 17:08:19 4891 4

原创 CMake 编译时报错 ninja: error: ......missing and no known rule to make it

Build command failed.Error while executing process F:\Android\sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {--build E:\MVVM_Project\xxx\app.externalNativeBuild\cmake\debug\x86_64 --target xxx}...

2019-01-05 15:47:22 23602 11

原创 CMake编译时报错 is not full path什么的

根本没windows-86_64这个目录 只有windows目录 所以查看ndk目录里的ndk-bundle\build\cmake里的android.toolchain.cmake文件中的windows-x86_64的字眼,改为windows即可

2019-01-05 15:34:51 7019

原创 RecyclerView局部刷新的方法。

之前这种RecyclerView的复用缓存我都是放在list集合中管理,每次改变一个item的状态时候都会将集合重新修改然后notifyDataSetChanged一下,但是这种做法太暴力了。将所有的item都刷新了一遍,如果你的item全是静态的都还好说,要是有个动画或者别的东西,你懂得全是闪烁。所以就在查找资料关于recyclerview局部刷新的。一般就两种做法:第一种就是通过recyc...

2018-07-18 22:03:33 10318

原创 多版本、多环境、多渠道打包

关于多版本多环境的内容之前写了一篇博客可以参考:https://blog.csdn.net/jhl122/article/details/745407401,多版本需要注意的就是签名信息的配置:signingConfigs { release { storeFile file('xxx.jks')//keystore的路径 store...

2018-04-25 14:52:14 621

原创 PopupWindow显示之后所在的Activity结束的时候出现短暂黑屏问题

在当前Activity弹出PopuoWindow弹窗之后,取消弹窗,然后结束当前Activity的时候会出现短暂黑屏现象。这是由于设置背景透明度时候造成的 public ESPopUpWindowBuilder setBackAlpha(float alpha) { if (context != null) { WindowManager.LayoutPar...

2018-04-17 16:45:29 1524

原创 安卓和前段交互——视频播放video标签横竖屏

第一和前段交互做视频的播放记录一下。需求:前段播放视频 可以全屏点击,点击全屏按钮原生横屏,点击取消横屏原生竖屏。问题:一开始做的时候因为对webview的WebChromeClient里面的方法了解的不全面,所以想到的第一种方案就是让前段监听全屏按钮的点击事件当全屏时候调用原生我设置好的横屏方法,竖屏也是如此,可是问题就是前段使用的插件找不到全屏按钮事件。  解决: 后来通过前段人员和他认识的朋...

2018-04-02 09:13:58 4225

原创 VideoView按原始视频比例播放

正常还是建议用mediaplayer+sufaceview 实现视频播放。但是由于只是实现简单的播放功能我就使用了videoview,用videoview播放视频存在的问题就是在固定好的宽高内播放视频不是原始视频比例,所以这就需要做出一些设置更改。关键的问题是获取视频的宽高有了这个就可以自定义的去设置播放的视频比例通过onPrepared回调获取mediaplayer对象,这样我们就可以获取到了视...

2018-03-25 14:39:03 10506 3

原创 [tortoisegit+github] error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

push代码的时候遇到[tortoisegit+github] error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol versiongoogle之后 发现github 2月1日发了个公告Weak cryptographic standards removal notice。不再支持TLSv1/TLSv1.1。...

2018-03-21 17:27:45 417

原创 安卓原生与vue前段相互调用

之前写过一个博客是安卓原生与JS交互的博客:http://blog.csdn.net/jhl122/article/details/53406623。那是正常情况下的交互,但是如果前段人员使用vue开发就会产生一个问题:安卓原生调用js中的方法报“方法找不到”的错误。 安卓原生与vue的交互vue调用安卓的方法和之前的没有区别,详细请到博客中查看,不同的是安卓调用vue中的方法有所变化。1,正

2018-01-24 15:29:27 20931 4

原创 使用studio将module打包成jar包

在要打包的module的builde.gradle文件下添加任务:task makeJar(type: Copy) { delete 'build/libs/mylibrary.jar' //删除已经存在的jar包 from('build/intermediates/bundles/release/')//从该目录下加载要打包的文件 into('build/libs/'

2017-09-29 17:02:32 1009

原创 html 英文不自动换行问题

在标签中添加样式:word-break:break-all;

2017-09-21 10:00:32 4716

原创 手欠--Executioin failed for task 的问题

这个问题要强调一下,主要是因为我用了全局替换 变量的名称 ,导致了 清单文件中的 权限名称改变了,特此记录,不要手欠为了省事总全局替换。错误名称:Error:Execution failed for task ':lib_resource:processReleaseManifest'.> Manifest merger failed with multiple errors, see

2017-08-16 09:28:20 321

原创 BuildConfig.Debug总为false的解决

利用BuildConfig.Debug可以和log日志结合使用,当在debug模式的时候BuildConfig.Debug为true,当为release模式的时候为false。但是有一种情况就是 我有个lib_base的library,用来放置各种uitls工具类还有依赖等等,当app依赖lib_base时候,此时BuildConfig.Debug就会一直为false。解决方法:在添加依赖

2017-08-02 10:51:41 1730

原创 surfaceview+mediaplayerview实现本地网络视频播放

GitHub地址:https://github.com/JiangAndroidwork/MyMediaPlayer具体的代码请在github上面查看,我主要记录一下踩过的坑,需要注意的地方。需要注意的SurfaceHolder.getHolder.addCallback(this)的回调方法surfaceCreated()、surfaceDestoryed()生命周期,sur

2017-08-01 11:11:13 810

原创 状态栏和虚拟按键隐藏快捷方法

可通过:getActivity().getWindow().getDecorView().setSystemUiVisibility;getActivity().getWindow().getDecorView().getSystemUiVisibility;方法使用。setSystemUiVisibility(int visibility)方法可传入的实参为:   

2017-07-26 09:40:48 3056

原创 Gradle--创建构建Variant

首先先介绍几个概念:构建类型:每个由Android Studio 创建的项目都会生成debug和release构建类型,当然还可以自定义类型。product flavor(不同定制的产品):它一般用于管理多个应用variant:构建类型和product flavor经常结合在一起使用,一般应用的场景就是 代码都相同、图标不同、资源有些不同的几个应用,把它俩结合结果称之为构建varian

2017-07-06 15:15:50 790

原创 Gradle--项目范围设置额外属性

就是在工程的build.gradle文件中通过ext代码块来设置属性,比如可以是compileSdkVersion或者buildToolsVersion等等 任意属性ext{ kotlin_version = '1.1.2-4' minSdkVersion = 16 }该段代码是的模块层的构建文件可以使用 rootProject来获取属性:and

2017-07-03 10:16:20 1088

原创 Gradle--BuildConfig

自SDK工具版本升级到17之后,构建工具都会生成一个叫做BUildConfig的类,该类包含一个按照构建类型设置值的DEBUG常量。如果有一部分代码你只想在debugging时期运行,比如log,还比如测试的url,那么DEBUG会非常有用。可以通过Gradle来扩展该文件,这样debug和release就能拥有不同的常量。使用:在module的build.gradle中设置:

2017-07-03 09:47:02 242

原创 kotlin--操作符

主要针对集合操作,注释上都有解释,直接贴代码。class ListPrise { val TAG:String ="listPrise===" var listData = listOf(123,23,123,22,12,4,12) /** * ------------------------------------------------ * 下标

2017-06-29 14:07:15 284

原创 揭露效果实现

揭露动画实现一些类似无缝连接的效果:就是类似这样的效果。实现:1,在初始界面 Intent intent = new Intent(mContext,AnimationActivity.class); ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(

2017-06-28 16:35:47 375

原创 layoutAnimation动画

动画效果:

2017-06-28 16:16:55 271

原创 AIDL进程间通信

1,简单了解AIDL是进程间通信的接口描述语言,它的使用场景用官网的话来说:“只有当你允许来自不同的客户端访问你的服务并且需要处理多线程问题时你才必须使用AIDL”,所以AIDL可以用来处理多线程、多客户端并发访问的。2,使用服务端:(1)在main目录右键选择创建aidl,如图所示。会生成aidl接口文件 IMyAidlInterface.aidl。(2)添加

2017-06-28 15:52:13 222

原创 AS快捷键

截图显示:1

2017-06-22 10:37:49 194

原创 正则表达式的使用

\d 数字:[0-9]\D 非数字:[^0-9]\s  空白字符:[\t\n\x0B\f\r]\S 非空白字符:[^\s]\w 单词字符:[a-zA-Z_0-9]\W 非单词字符:[^\w]1,Pattern.matcher(String regex,CharSequence input):用于快速匹配字符串,只是用于匹配一次,且匹配全部的字符串Pattern.matc

2017-06-21 15:20:56 209

原创 问题: 自定义view MarginLayoutParams报错

在写自定义view时候获取子view 的Margin数据时候使用  LayoutParams childLayoutParams = child.getLayoutParams(); MarginLayoutParams marginLayoutParams = (MarginLayoutParams) childLayoutParams;报错,显示类初

2017-06-14 16:21:06 1093

原创 activity手势右滑finish

GitHub:https://github.com/JiangAndroidwork/SlidingFinishAnimation具体的原理可以看原码,都有注释。需要注意的事项:1,需要在项目的主题styles中添加true@color/touming达到背景页面为透明的效果,其中touming是#00ffffff2,activity页面根布局需要设置背景

2017-06-06 14:05:06 426

原创 仿微信的图片和视频选择适配器

GitHub地址:https://github.com/JiangAndroidwork/MyImagePicker已适配安卓7.0添加依赖:在工程的build.gradle文件中添加:allprojects { repositories { jcenter() maven { url 'https://jitpack.io' }

2017-05-23 16:06:59 2154

原创 kotlin学习途径

Google I/O 2017 首日 Keynote 刚刚落幕,其中 Google 宣布 Android 系统开发全面支持Kotlin 算是一个非常重磅的新闻。之前对kotlin不是很了解,所以这段时间专门去学习了解这么语言。最好的学习途径就是去kotlin官网去学习:1.kotlin官方中文翻译文档网址:https://www.kotlincn.net/docs/reference/

2017-05-19 15:50:58 1269

原创 安卓7.0的适配---uri更改和安装apk

在安卓7.0之前Uri的创建只需要通过Uri uri = Uri.fromFile(url);创建即可。但是在安卓7.0之后做了更改,通过内容提供者包装uri,具体步骤:1,在AndroidManifest.xml中加入:<provider android:authorities="com.android.demo" andr

2017-05-16 14:21:48 1448

原创 RxJava+Retrofit实现文件下载

GitHub地址:https://github.com/JiangAndroidwork/RetrofitOfRxJava传送门:RxJava+Retrofit+MVP 带有进度条的文件上传感谢:wzgiceman大神的贡献 点击打开链接思路和之前的http请求和文件上传是一样的,不过由于本人实力有限,在service接口文件的问题上面没有做到更深层次的封装,我只把文件下载封装到了

2017-03-22 10:59:42 4370

原创 RxJava+Retrofit+MVP 带有进度条的文件上传

github地址:https://github.com/JiangAndroidwork/RetrofitOfRxJava      RxJava+Retrofit+MVP 封装带有加载框的Http请求 上传文件的方法和基本的Http请求方法相同,只不过针对了上传文件的参数进行了封装。service接口: public interface RetrofitMethods

2017-03-21 08:36:21 3214

安卓 viewpager横滑嵌套 竖滑viewpager

安卓 viewpager横滑嵌套 竖滑viewpager,竖滑viewpager无限循环,滑动流畅。

2019-09-19

finalhttp jar包

2017-05-03

文件下载类库

文件下载所需的类库

2017-01-05

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

TA关注的人

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