android
ITPlus
从事Android开发9年以上,熟悉javaWeb开发,从事过智能硬件的研发,熟悉多门编程语言和脚本,熟悉uni-app混合开发,微信小程序开发,熟悉flutter跨平台开发,云游戏平台开发,从事音视频编解码,参与手机系统定制,权限管理/图库/Mtp/MP/主题壁纸等开发
展开
-
腾讯短视频二次开发-水印添加
短视频添加水印原创 2022-08-10 21:15:55 · 390 阅读 · 0 评论 -
Okhttp中获取Cookie并在WebView中使用
Android Okhttp中获取Cookie并在WebView中使用的方法现在混合开发成为主流,原生和H5交互更为广泛,所以要做大前端开发,APP和浏览器都得懂1、从okhttp3.Response中获取Cookies并保存 private void saveCookies(okhttp3.Response response) { Headers headers = response.headers(); List<String> values原创 2021-05-27 10:15:24 · 1003 阅读 · 0 评论 -
apksigner完成apk的签名
有时候用第三方加固平台加固以后会让我们重新签名。还有就是上应用市场的时候,如果以前该应用已经在市场上上传过了,由于后面业务原因换了开发者账号再去上传就会提示我们去认领一个没有签名的包(unsign.apk),然后去签名上传进行MD5签名验证,如下图看到上面的提示不要慌,不就是加个签名么,apksigner就是SDK自带的签名工具,处于F:\android-sdk\build-tools\xxx目录下将上面的路径配置到系统环境变量path中,打开cmd,切换到unsign.apk目录下,建议..原创 2020-06-17 17:28:09 · 2803 阅读 · 0 评论 -
greendao入门案例(crud)
greendao入门案例(crud) 一、gradle配置 二、初始化数据库 三、编写crud操作 四、效果图一、gradle配置项目级gradle中做如下配置buildscript { ext{ greendao_version = '3.2.2' schema_version=1 } dependencies { classpath "org.greenrobot:greendao-gradle-plu原创 2020-06-03 15:04:32 · 392 阅读 · 0 评论 -
解决“com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+”下载不到的问题
com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+ 是微信提供给第三方sdk(支付、登录和分享等),今天在跑一个新项目的时候这个依赖老是下载不到,最后找到了微信团队的maven服务器,才解决解决方案如下allprojects { repositories { maven { ur...原创 2020-03-16 11:32:12 · 13668 阅读 · 1 评论 -
Android一行代码去掉百度导航的底部工具箱菜单
对于百度地图有时候需要自定义一些UI的显示,对于sdk自带效果需要做一定的改动来满足我们的需求。其实地图上的各种试图都是浮动在地图上的view,所以去掉view只需要设置为GONE,或者找到父View给remove掉。但是具体是那个view我们就是踩着石头过河了。这里我们就需要用到强大的debug模式去遍历查看view树,然后对其id进行分析,根据命名可以推测大概的控件,然后通过全局搜素去搜id...原创 2020-01-06 11:09:56 · 651 阅读 · 0 评论 -
解决阿里推送sdk 3.0以上初始化报“init cloudchannel failed -- errorcode:10212 -- errorMessage:静默连接进程未初始化”的问题
解决方案如下: @Override public void onCreate() { super.onCreate(); //注意:这句要放到最前面执行,必须是 在 android:process=":channel" initCloudChannel(this); //我的项目是多进程,例如 Stri...原创 2019-12-09 10:53:29 · 2408 阅读 · 4 评论 -
android开发中Json中key升序排列问题
一、Google 的Gson的排序策略(来自网络) private static Comparator<String> getComparator() { Comparator<String> c = new Comparator<String>() { @Override public i...原创 2019-11-28 15:33:15 · 1033 阅读 · 0 评论 -
记录RecyclerView+CheckBox实现单选操作
Android中关于这个表单的操作中单选和多选操作比较多,尤其在列表中操作的这个状态值很绕脑子,还要考虑焦点冲突,滑动错乱。之前又做过购物车的多选,全选,反选;还做过考试系统的单选题和多选题除过这些常规的以外还有各种奇葩需求,多选可以参考我以前写的博客列表多选操作,今天我来记录一个电商app中选择优惠券的单选操作(一般很少让你同时使用多张优惠券)具体代码如下,可以自行看注释public ...原创 2019-11-15 10:39:25 · 1073 阅读 · 0 评论 -
Android 通过java代码实现EditText输入限制
做了快五年安卓了第一次看到这么个需求,限制输入固定数量的字符,众所周知在xml文件中直接配置 android:maxLength=“xx”即可,但是我想这把这个功能封装成一个组件,根据别人的不同需求去修改相应的限制数值,但是EditText是没有提供这个方法的,所以要自己搞!!!分析android:maxLength这个属性可以起作用说明它是在java文件中有初始化操作,所以可以...原创 2019-11-13 11:05:02 · 750 阅读 · 0 评论 -
解决Android打包com.android.build.api.transform.TransformException的问题
今天导入了一个今年前的老项目,很多第三方jar还放在lib下,gradle构建没有问题,但是在打包的时候报错如下Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java....原创 2019-11-09 16:24:03 · 2967 阅读 · 0 评论 -
android gradle打包零碎知识
Android studio 3.4.1 ;gradle version5.1.1 ;低版本的gradle可能有差异,或者部分api被移除一 、gradle生成指定命名的aar并且复制到指定目录下android{ //动态修改aar输出名称 buildAAR(android) }// 打包aardef buildAAR(android) { android...原创 2019-11-01 11:42:29 · 179 阅读 · 0 评论 -
关于vivo手机调试安装“解析程序包时出现问题”的解决方案
首先关于用户账号的问题,必须登录相关账号授权,不然会在run的时候中途断掉adb连接然后在gradle.properties加上android.injected.testOnly=false禁用Instant run功能。如下然后检查手机开发者中usb调试是否打开,删除掉build目录,清理缓存后继续运行...原创 2019-10-29 14:54:41 · 10563 阅读 · 0 评论 -
Android TabLayout设置字体大小的正确方式
1、在styles.xml中自定义TabLayoutTextStyle<style name="TabLayoutTextStyle"> <item name="android:textSize">@dimen/tab_layout_text_size</item> </style>2、textSize不要直接写固定的x...原创 2018-12-21 12:28:44 · 3129 阅读 · 9 评论 -
Android 导出release.aar包的正确姿势
Android 导出release.aar包的正确姿势结果如下:是不是还在为build后只有xxx-debug.aar而苦恼,是不是在配置了buildTypes-release{。。。}任然导不出xxx-release.aar而头疼?不急,下面介绍一种简单又快捷的方式,看完我的图你不还会那我就得怀疑我的画图技术了…(如下图)结果如下:...原创 2018-09-30 11:13:02 · 1927 阅读 · 4 评论 -
对Android运行出现“Session 'app': Error Launching activity”问题的补充
“Session ‘app’: Error Launching activity”这个问题网上有两种解决方案,但是都没有解决我的问题基本的解决方案有File->Settings->Build, Execution,Deployment找到Instant Run,将instant run前的选项去掉Tools -> Android -> Sync Project ...原创 2018-10-12 16:43:49 · 1999 阅读 · 0 评论 -
Android RecyclerView嵌套到ScrollView中Item的宽度不能完全填充父布局的问题
RecyclerView嵌套到ScrollView经常会出现item不能完全填充的问题,给大家个简单暴力的方案:重新设置布局参数class MyViewHolder extends RecyclerView.ViewHolder{ private MyViewHolder (View itemView) { super(itemView);...原创 2018-08-10 15:13:57 · 551 阅读 · 0 评论 -
Android Toolbar遮挡按钮(view)点击事件,怎么穿透呢
今天有朋友问我这个问题,我找到一个可行的方案,给大家分享一下toolbar.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //R.id.bot...原创 2018-08-10 15:04:20 · 2304 阅读 · 0 评论 -
Android关于滚动View标题栏渐变的解决方案
这个工具类是在做某电商项目的时候通宵搞出来的,所以分享给各位开发者,避免无效的加班/** * @文档说明: 处理滚动view的渐变效果 * @开发者: 江荣涛 * @创建时间: 2018/6/13 0:34 **/public class ScrollObservableUtils { private static int mDistance = 0; ...原创 2018-08-10 11:14:05 · 620 阅读 · 0 评论 -
Adnroid ListView And RecyclerView内嵌套CheckBox滑动错乱的简单解决方案
第一步:在javabean手动加入一个属性作为选中的标记,默认不选中public boolean isChoose = false;第二部:adapter中的写法如下: //防止CheckBox复用错乱 holder.chooseCb.setOnClickListener(new View.OnClickListener() { ...原创 2018-08-03 16:19:18 · 269 阅读 · 0 评论 -
Android apk安装失败的原因
签名和已安装版本不一致低版本去覆盖高版本第三种是打包方式问题: 注意:如果只勾选V2打出来的包是不完整的,所以V1和V2都得勾选;只勾选V2在真机上是跑不起来的...原创 2018-06-14 22:09:57 · 4069 阅读 · 0 评论 -
解决Tabhost.setCurrentTab()不起作用的方法
方法一 修改TabWidget 的 mSelectedTab字段try { Class<TabWidget> tabWidgetClass = (Class<TabWidget>) mTabhost.getTabWidget().getClass(); Field mCurrentTab = ta...原创 2018-06-05 14:05:37 · 1829 阅读 · 0 评论 -
一行代码解决addTextChangedListener多次重复执行的问题
今天发现一个怪问题,在Edittext中编辑文本的时候logcat一直刷屏,打印相同的日志,虽然界面上没有卡顿情况,但是我这块输入的东西要存放到本地数据库,导致数据不停的读写,非常影响性能。然后就坐下来思考,在afterTextChanged方法中做调用次数统计,确实可以触发多次;然后网上搜了一边方法千奇百怪,还不起效果;所以只能自己搞,具体解决方案如下: //1、移除原来的...原创 2019-05-23 16:14:45 · 8774 阅读 · 2 评论 -
Android Edittext改变键盘回车为搜索
做搜索功能的时候遇到的坑,网上都是android:imeOptions=”actionSearch”,但是对Edittext不起作用,键盘上的回车键不变。android:singleLine="true" android:imeOptions="actionSearch"注意:用SearchView直接使用android:imeOptions=”actionSearch”即...原创 2018-05-27 12:01:44 · 518 阅读 · 0 评论 -
TabLayout的高级用法(自定义tab和修改指示器宽度)
TabLayout很好用,但是原生的属性很难满足正式的需求,所以就得自定义自己的tab(可以时单纯文字或者文图混排形式),原生的切换没有动画效果,为了交互效果好点我们也可以添加相应的动画,原生的tabIndicator只提供了设置高度和背景色的方法,宽度是均分的,有点丑;要实现以上需求,我准备了一个工具类,可以根据业务对其扩充或修改/** * @Desc: 为TabLayout设置动画 ...原创 2018-12-25 14:55:09 · 7235 阅读 · 0 评论 -
android多层Fragment嵌套,内部Fragment接收不到OnActivityResult()方法的回调的解决方案
有段时间不写博客了,但是今天这个问题浪费了我两天的时间,所以有必要做个笔记。项目中有个需求就是多个tab控制多个界面,所以就是Fragment–TabLayout+ViewPager–内嵌多个Fragment,看着没啥问题,但是子Fragment中有个选择图片的操作,结果问题来了,OnActivityResult()不回掉,当时我就想到嵌套返回的问题,所以在最外层的Fragment的OnActi...原创 2019-03-20 10:29:31 · 1979 阅读 · 0 评论 -
Android Studio插件ECTranslation的使用分享
Android Studio的插件ECTranslation是一款支持源代码英文翻译成中文的插件,对于我们中国的大多数程序员来说是福利。 其实这篇博文我不想写什么,我也不知道要写什么,这个插件具体用法: https://github.com/Skykai521/ECTranslation 该作者已经写的非常详细了,我也不再班门弄斧了。意在分享,这里我想分享一下张鸿洋大哥的一片blog: ht原创 2016-06-01 10:52:05 · 5660 阅读 · 0 评论 -
最笨的解决android打包aar中引入远程依赖资源加载不到的问题
为了功能模块化和功能的复用,我们可以把具体的模块封装成库,做成.aar文件供别人项目使用,但是在开发library的时候可能会用到其他第三方的库,一般我们会在library的gradle文件中进行添加依赖,但是在将library制作成.aar供其他的项目使用的时候,如果用到第三方远程库里面的资源会报错,找不到。业务场景myapp 依赖于mylibrary-release.aarlibr...原创 2019-08-07 11:36:15 · 5148 阅读 · 0 评论 -
用ndk-stack定位NDK开发中.so文件报错信息
ndk开发中so导致的应用crash很隐秘,在logcat中不明显,所以令开发者手足无措,这里介绍ndk自带的ndk-stack,它可以dump对应的crash信息首先你要长期使用这个工具的话我建议直接先把…\ndk-bundle添加到环境变量。接下来我们来模拟一个c++空指针当我们在app中调用这个方法的时候,由于env指针为 NULL 程序会挂掉,但是查看logcat会有以下信息...原创 2019-07-30 11:09:19 · 1413 阅读 · 0 评论 -
初识android中的adb
1.android下的用户权限及系统的目录介绍: root权限: 0 system: 1000 shell: 2000 app应用权限: 大于10000 /data/data/packagname /data/data : 私有目录,每安装一个新的应用,就会在此目录下创建一个包名文件夹,权限只归当前原创 2019-07-18 00:18:31 · 557 阅读 · 1 评论 -
解决fragment嵌套多次选择图片或者拍照,临时文件为空的问题
我用fragment里面嵌套TabLayout+Viewpager+(多个)fragment,内部的fragment里面有一个列表,列表中有一个选择图片的操作;遇到第一个坑就是在内部fragment中调用startActivityForResult没有回调;具体解决方法入下:android多层Fragment嵌套,内部Fragment接收不到OnActivityResult()方法的回调的解...原创 2019-06-13 10:45:07 · 481 阅读 · 0 评论 -
Android7.0以上系统报java.lang.UnsatisfiedLinkError: dlopen failed: library "xxx.so" not found
由于一直维护这之前的老项目,不知道什么时候把目标SDK版本给调整到25了,结果在我的android9.0系统的手机上安装崩溃。但是在低版本5.1的模拟器上没问题,所以我就抓了log,发现报“java.lang.UnsatisfiedLinkError: dlopen failed: library “libXXX.so” not found”;网上找了半天,就发现这个方法简单粗暴又实用,直接修改...原创 2019-06-05 15:39:05 · 4930 阅读 · 0 评论 -
Android实现跑马灯的简单方式
跑马灯最常规的实现 java中 public class MarqueeTextView extends android.support.v7.widget.AppCompatTextView { public MarqueeTextView(Context context) { this(context, null); } public Marque...原创 2019-04-10 16:30:39 · 526 阅读 · 2 评论 -
解决android Webview报Mixed Content。。。的问题
测试给了一个bug,说网页中的图片显示不出来,刚开始以为是前端h5界面写的有问题,结果他又说ios没问题,那就是webview在坑队友了,立即链接adb ,打开logcat日志如下:Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure image 'http://xxx...原创 2019-04-04 16:37:49 · 2091 阅读 · 0 评论 -
解决android WebView对下载链接的拦截的问题(下载按钮点不动)
在android的高版本中因为安全问题对WebView中下载链接进行了拦截,如果你点击了一个带有下载链接的按钮,链接中含有.apk,那么这个按钮的js点击是不起作用的,解决方法如下 /*处理安卓webview对下载链接的拦截*/ @Override public boolean shouldOverrideUrlLoading(WebView view, St...原创 2019-04-04 16:23:32 · 4260 阅读 · 0 评论 -
优化MPAndroidChart绘制折线图数据过多,X轴显示密集的问题
最近在某个项目中用到了折线图,所以就选择用MPAndroidChart这个比较强大的图表库要用这个库,先要添加以下依赖implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'优化X轴显示密集重复我采用以下方案设置X轴可以缩放,Y轴禁止缩放 mLineChart.setScaleXEnabled(...原创 2019-03-26 11:11:49 · 7996 阅读 · 7 评论 -
解决Android TV版APP在真机上无法安装的问题
最近接了个与TV开发相关的项目,采用AS自动生成的项目在模拟器上运行没问题,但是在电视真机上就是安装不上,跑不起来,我这还没有电视测试,测试还要去找朋友借设备,有点郁闷。AS自动生成的manifest文件如下application android:allowBackup="true" android:icon="@mipmap/ic_launcher"原创 2018-01-26 15:05:22 · 6943 阅读 · 4 评论 -
Android 8.0 行为变更-针对所有 API 级别的应用
这些行为变更适用于 在 Android 8.0 平台上运行的 所有应用,无论这些应用是针对哪个 API 级别构建。所有开发者都应查看这些变更,并修改其应用以正确支持这些变更。一、后台执行限制Android 8.0 为提高电池续航时间而引入的变更之一是,当您的应用进入已缓存状态时,如果没有活动的组件,系统将解除应用具有的所有唤醒锁。此外,为提高设备性能,系统会限制未在前台运行的应用的某些行为。具体而翻译 2017-10-07 10:45:45 · 2507 阅读 · 0 评论 -
RecyclerView、CardView和Palette打造炫酷流式布局效果
RecyclerView、CardView和Palette都是android5.0新特性。下面这个小案例就是通过RecyclerView的StaggeredGridLayoutManager实现流式布局,CardView实现圆角, Palette拾取不同的图片的颜色值设置给CardView做背景色。效果展示首先了解一下要用的三个控件:RecyclerView和ListView不同的是系统提供3个原创 2016-08-30 22:38:53 · 1288 阅读 · 0 评论 -
android仿腾讯小火箭案例
效果展示思路分析首先要准备两张小火箭图片,通过帧动画来实现火箭喷火的效果准备两张看似冒白烟的图片,在火箭的发射的时候通过渐变动画实现发射时的效果熟悉view的onTouch事件处理,以及android基本动画的使用当小火箭被拖动到发射区域时抬起时火箭发射,执行冒白烟的渐变动画,当火箭飞出屏幕时结束所有动画具体实现步骤一、在res/drawable目录下创建一个帧动画的xml文件,deskt原创 2016-07-23 15:52:37 · 1955 阅读 · 0 评论