Android工作经验之谈
文章平均质量分 56
隔壁小王66
不积跬步无以至千里,不积小流无以成江海
展开
-
Mac 通过adb安装apk文件
在windows下安装apk很容易,直接连上usb把文件挪到手机里即可,但是mac上有点麻烦,只能通过qq,微信传递等下载在安装。更简便的方式是通过adb命令安装1:首先找到adb地址,在Android sdk下面的platform-tools的adb文件2:获取要安装的apk路径执行!!![adb 的绝对路径] install [apk 的绝对路径]如果手机中存在此应用,应该先删除在执行,不然会出现Failure [INSTALL_FAILED_ALREADY_EXISTS]或者通原创 2020-06-15 17:10:51 · 2271 阅读 · 0 评论 -
RecyclerView嵌套RecyclerView问题
RecyclerView嵌套RecyclerView问题(一) 嵌套刷新后分割间距变化问题场景:RecyclerView嵌套RecyclerView,且外部增加下拉刷新,运用addItemDecoration分别添加分割,刷新后内部列表分割间距变大,外部列表不变分析:主要是addItemDecoration在初始化的时候添加多次,在外部的RecyclerView在刷新的时候并不会重复addI...原创 2020-03-20 15:17:53 · 935 阅读 · 0 评论 -
RecyclerView中 item进行放大动画被父布局覆盖
问题描述:当我们需要在RecyclerView的item中设置缩放动画时,会发现放大时会被父布局遮挡问题解决:需要设置RecyclerView的父类的属性: clipChildren = false, clipToPadding = false, 避免边缘的子view被父类遮挡.如果父布局还有父布局,也需要添加上述属性...原创 2020-03-16 19:53:51 · 1196 阅读 · 0 评论 -
Bitmap.createBitmap 导致内存溢出的考虑
最近业务涉及自定义相机,这一块业务涉及到很多图片的处理,图片的旋转,裁剪,压缩等等,这块主要讲一下createBitmap引起的内存溢出。这里讲一下几个个人认为的原则1:尽量少用慎用createBitmap,用了必须try catch2:在catch中处理,不然就不走了,判断是否是OutOfMemoryError,在处理3:处理一般返回默认图片,要么就根据path,用BitmapFact...原创 2019-12-09 16:06:48 · 2211 阅读 · 0 评论 -
记录requestFeature() must be called before adding content问题
requestFeature() And supportRequestWindowFeaturerequestFeature很常见,大家也经常在去掉标题栏的时候使用。requestFeature() must be called before adding content这个问题大家多少也了解,今天就笔叙一下遇到的问题就是字面意思,requestFeature必须在setConten...原创 2019-12-09 10:50:20 · 408 阅读 · 0 评论 -
Android studio Logcat 过滤栏消失
有时候打开多个项目,突然发现lagcat的过滤栏消失不见了,那么应该如何调出来呢?得救之道,就在其中在底部Logcat处右键单击选中windowed Mode,在取消就出来了...原创 2019-10-14 14:22:13 · 1604 阅读 · 0 评论 -
java.io.IOException: unexpected end of stream on okhttp3.Address
在使用okhttp和retrofit访问网络的时候,今天测出来问题:java.io.IOException: unexpected end of stream on okhttp3.Address@XXXX后解决办法如下:if (Build.VERSION.SDK != null && Build.VERSION.SDK_INT > 13) { request = reque原创 2017-11-10 11:17:19 · 14089 阅读 · 0 评论 -
Android集成高德地图如何自定义marker
高德地图自定义Marker高德地图默认的marker样式是这种一般的修改样式是通过icon接口来调整MarkerOptions markerOptions = new MarkerOptions() .position(latlng) .draggable(true) .icon(原创 2017-10-16 18:51:29 · 5531 阅读 · 0 评论 -
Android 混淆之后出现java.lang.InternalError
项目中引用了 compile 'io.reactivex:rxjava:1.1.3'在混淆之后,运行崩溃,日志显示java.lang.InternalError添加混淆代码:##解决java.lang.InternalError-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producer原创 2017-11-21 12:03:49 · 3635 阅读 · 2 评论 -
Android 如何获取应用签名
Android 获取应用签名很多时候我们需要获取应用签名,例如用到微信的登录分享的时候。怎么签名就不在赘述,今天正好在工作中遇到,下面主要记叙一下如何获取签名,方便在以后工作中用到。方法一:微信签名工具获取,签名工具下载地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&veri原创 2017-12-20 11:58:23 · 14311 阅读 · 1 评论 -
仿京东App分类页面的实现
今天群里有人问了关于仿京东App分类页面的实现,而我之前正好查过这方面的资料,手上正好有一个demo,正好分享给大家看看,个人觉得效果棒棒哒!首先来看效果图吧是不是很6呢,来分析这个demo的主体构成吧,顶部为搜索栏,左侧是scroview,不要担心优化问题,因为scroview里面的TextView是动态生成的,完全不用担心优化问题,右侧是viewPager,Scroview可以控制viewPag原创 2016-03-16 11:16:29 · 15604 阅读 · 45 评论 -
android.content.res.Resources$NotFoundException: String resource ID #0x1
这个问题一般是由于TextView设置内容的时候是int而不是string。例如:public class MainActivity extends AppCompatActivity { private int a=1; @Override protected void onCreate(Bundle savedInstanceState) { super.o原创 2017-07-05 15:14:29 · 534 阅读 · 0 评论 -
Android学习之腾讯互动直播开发经验小结
最近外派到XXX公司做一个带直播功能的pad项目,集成的是腾讯的互动直播,今天写了一下经验小结,方便以后使用。互动直播集成流程:1:需要到腾讯云直播平台下载SDK,注意点,现在腾讯SDK的下载需要经过实名制认证的账户才具有下载资格权限,只有通过腾讯资格认证审核才行,当然下载之前最好将互动直播的开发指南好好阅读几遍,会增强我们对直播的了解能力。2:下载完SDK之后,我们就开始了对SDK的集成配置,这个原创 2016-06-30 15:38:46 · 6742 阅读 · 5 评论 -
集成腾讯随心播1.8.4代码流程分析
之前写过关于集成腾讯直播的一些关键地方,但是比较分散,加之随心播新版本对权限角色做了升级,这对优化流量计费有很大帮助,因此,升级必不可少。随心播下载地址:https://github.com/zhaoyang21cn/Android_Suixinbo首先是集成流程,文档都提到。1,配置为jcenter库2,使用proguard等工具做了代码混淆-keep class com.tencent.**{*原创 2017-02-06 18:31:49 · 9864 阅读 · 3 评论 -
腾讯互动直播上麦以及计费问题小结
腾讯互动直播上麦问题的由来,是由于腾讯计费问题,如果您是土豪,那就不用考虑这个问题了,全部设置默认权限就行,如果公司开发直播功能,不去考虑计费问题的话,这将是一笔很大的开销。看一下腾讯计费公式咋一看公式很简单,主要考虑核心机房(DC)和边缘机房(OC)DC:上下行音视频数据,适用于音视频互动,如上麦互动角色。OC:只能下行音视频数据,只适用于观看,纯吃瓜群众。通过分析,会发现观众其实有两种角色,互动原创 2017-06-20 15:11:34 · 1985 阅读 · 1 评论 -
JavaScript学习笔记(第四天)
前面几章都是对如何操作DOM节点的,今天学习一下js操作表单。对表单form的操作其实跟DOM类似,毕竟form也是html的节点。html的表单输入控件主要包括:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>操作表单</title></head><body> <form>原创 2017-06-04 23:16:55 · 433 阅读 · 0 评论 -
Android 对事物状态的处理方法
在开发中,我们会处理各种事物对象。课程,有上课状态(可以根据时间确定)支付,有支付状态(可以根据回调确定)请求,有请求状态(可以根据返回值)他们的结果都是由服务端回调确认的,所以,对于Android所有事物状态的判断,都不由本地来处理,统一由服务端来处理,返回到本地,这样才能确保数据的准确性。最近在工作中遇到这样一种逻辑,处理上课状态,分为待上课,已上课,未开始,已结束四种状态。四种状态都是根据课程原创 2017-02-13 11:56:02 · 489 阅读 · 0 评论 -
Android 关于Notification 点击启动流程分析
最近在项目中做了一个关于推送消息,点击进入指定页面的一个功能,相信大家都遇到过这种情形。比如在集成(极光/友盟/小米/华为)推送的时候,当收到消息的时候如何处理点击逻辑呢?看图:上面是我简单画的一个分析流程以及注意事项,以后留用。根据是否登录来做判断,为什么不根据进程是否存活来判断呢?因为在网上,很多都是根据进程是否alive来判断应用是否退出,但是进程死了,又如何能接收推送消息呢?因为接收推送消息原创 2017-01-12 17:26:03 · 4736 阅读 · 0 评论 -
DrawerLayout实现侧滑布局问题总结
本片是对DrawerLayout使用的一个详细解析,也是对开发中遇到问题的一些总结。DrawerLayout是SupportLibrary中一个支持侧滑效果的控件,开发中主要是跟NavigationView+Toolbar配合来实现侧滑菜单,具体看效果。这个效果模板即可实现,这里简单做下使用讲解,重点不在这里。布局:<?xml version="1.0" encoding="utf-8"?><an原创 2017-01-04 15:12:16 · 4014 阅读 · 0 评论 -
Resolved versions for app (26.1.0) and test app (27.1.1) differ
Resolved versions for app (26.1.0) and test app (27.1.1) differ最近在创建新的Kotlin项目,编译时出现如下问题Error:Execution failed for task ‘:app:preDebugAndroidTestBuild’. Conflict with dependency ‘com.android.s...原创 2018-06-21 11:32:12 · 444 阅读 · 0 评论 -
Android Https证书crt或者cer转换成bks文件
一:下载bcprov-jdk15on-160.jar下载bcprov-jdk15on-160.jar二:打开命令行keytool -importcert -v -trustcacerts -alias 位置1 \ -file 位置2 \ -keystore 位置3 -storetype BKS \ -providerclass org.bouncycastle.jce.provide...原创 2018-10-19 11:58:49 · 3963 阅读 · 0 评论 -
fastlane实现Android自动化打包
之前写过jenkins打包的配置文章,也写过一篇关于python实现本地自动化打包加固上传蒲公英一系列操作的文章。今天记录一下fastlane在Android中实现自动化打包的步骤。jenkins打包:https://blog.csdn.net/qq_16131393/article/details/83381128python打包:https://blog.csdn.net/qq_1613...原创 2019-09-05 15:33:20 · 3970 阅读 · 2 评论 -
Android 护眼模式的实现
思路:获取content根布局,在上面添加一层浮层,默认透明,开启护眼模式设置护眼色值。实现:在BaseActivity的onCreate方法中,添加浮层,所有的Activity继承BaseActivity即可步骤1: /** * 添加护眼模式浮层 */ protected void initEye() { content = ((ViewGrou...原创 2019-08-28 18:25:07 · 4179 阅读 · 15 评论 -
记录一下Android 长截屏功能
需求对webview进行截屏,可以大于一屏代码:在setContentView之前调用if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { WebView.enableSlowWholeDocumentDraw(); }对大于5.0的版本处理,防止截屏不全。public s...原创 2019-05-27 18:40:01 · 1319 阅读 · 0 评论 -
Android 状态栏问题汇总解决方案
为了解决项目中的状态栏适配问题,本人总结了一个demo,汇总状态栏适配遇到的各种场景实现。具体有如下功能:功能1:实现在切换tab时切换状态栏背景色与字体图标颜色功能2:实现在activity中滑动,渐变修改状态栏背景色与字体图标颜色功能3:实现在fragment中滑动,渐变修改状态栏背景色与字体图标颜色效果图:本人github地址:https://github.com/wang...原创 2019-05-06 16:28:58 · 325 阅读 · 0 评论 -
以一个需求为例浅谈对事件分发机制的理解
最近看了一些事件分发机制的文章,觉得有必要拿项目中的一些实例,来阐述一下对事件分发机制的理解,增强记忆。首先看需求这里由于需要向上滑动展示出一个titlebar的效果,所以我采用了CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+ViewPager的一个方案。首先,通过问题来阐述事件分发问题1:titlebar的样式并不好用to...原创 2019-04-25 14:46:50 · 434 阅读 · 0 评论 -
Android 对PagerSlidingTabStrip进行改造之兼容圆角下划线以及长度
PagerSlidingTabStrip的默认样式是地址:https://github.com/astuetz/PagerSlidingTabStrip这是一个比较老的tabIndicator库,改造前兼容的自定义属性 * pstsIndicatorColor滑动指示器颜色 * pstsUnderlineColor视图的底部的全宽线的颜色 * pstsDividerColor选项卡之间...原创 2019-05-05 18:56:19 · 448 阅读 · 0 评论 -
NestedScrollView嵌套ListView出现问题以及解决方法
在使用CoordinatorLayout和AppBarLayout实现嵌套滑动的时候,出现listview没有嵌套滑动;看布局: <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="mat...原创 2019-03-22 10:30:41 · 2256 阅读 · 0 评论 -
设置dialog形式的activity问题处理
场景:当我们在进行页面改版时,发现只是将一个activity的样式变成了dialog,这时候可以不需要重新写dialog,直接将activity改造成dialog样式的activity即可重点1:activity需要在清单文件添加dialog样式主题 <style name="MyDialogStyleBottom" parent="Theme.AppCompat.Dialog"&...原创 2019-03-18 17:17:34 · 911 阅读 · 0 评论 -
jarsigner 错误: java.lang.RuntimeException: 密钥库加载: Keystore was tampered with, or password was incorre
Android的apk安装包签名在上传应用到应用市场的时候需要开发者对应用进行认领,采用Android的apk安装包签名机制来完成。jarsigner简单使用说明jarsigner -verbose -keystore D:\sign_verification\xiaodou.jks -signedjar D:\sign_verification\meizuemptyapk-release-...原创 2018-11-08 10:45:48 · 7045 阅读 · 4 评论 -
Failed to load AppCompat ActionBar with unknown error.
最近在打开新项目的时候发现布局无法显示,刷新布局显示 Failed to load AppCompat ActionBar with unknown error.将主题替换为Base.Theme.AppCompat.Light.DarkActionBar即可...原创 2018-10-30 14:46:16 · 464 阅读 · 0 评论 -
Re-download dependencies and sync project (requires network)
今天打开一个项目的时候报Re-download dependencies and sync project (requires network)问题在于使用了4.4.1的gradle,然后却下载不下来。解决办法,从开发项目中的gradle-wrapper.properties中复制distributionUrl替换到目标项目中,在点击gradle refresh all即可。最好是把根...原创 2018-10-30 11:45:34 · 1713 阅读 · 0 评论 -
Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception:
Android studio更新3.1.2之后打开新项目,就会报Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception:解决办法,在gradle.properties中添加android.enableAapt2=false即可第二种解决方式更...原创 2018-10-25 16:27:51 · 3151 阅读 · 0 评论 -
Android 自动化构建之Jenkins配置
需求:前面实现了通过python来实现自动化构建上传加固,但是只能满足开发人员来实现此操作,近期公司需要配置Jenkins来完成这项这项操作,以满足测试人员自由构建获取apk。Jenkins的下载安装启动以及下载插件不在此文章之列!一,登录二,管理Jenkins-&gt;系统设置安装完jenkins之后会在主目录生成目录地址,项目的构建地址就在这里如:全局属性配置SDK位置配...原创 2018-10-25 15:59:20 · 1387 阅读 · 0 评论 -
PopupWindow实例解析
今天结合自己在项目开发中的使用,对PopupWindow做一下总结,并对PopupWindow与Dialog做一下对比分析。PopupWindow使用 private void showPopwindow() { // 获取自定义布局文件activity_popupwindow_left.xml的视图 View popupWindow_view = getLayou原创 2016-06-06 18:10:06 · 1270 阅读 · 0 评论 -
Android应用性能优化之使用SparseArray
最近在看一些Android应用性能优化的文章时,发现提到了SparseArray替代HashMap可以优化app性能,就对SparseArray做了一番了解,并记录使用心得。一,我们来看看SparseArray点击进去包含了那些方法://// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernf原创 2016-07-04 15:27:37 · 1095 阅读 · 1 评论 -
Android学习之仿QQ侧滑功能的实现
现在项目越来越多的应用了滑动删除的功能,Android本来遵循的是长按删除,IOS定制的是滑动删除,不可否认滑动删除确实在客户体验上要好一点,所以看了很多关于仿QQ滑动删除的例子,还是感觉代码家的Android Swipe Layout要好一点,至于为何好,下面我给大家实验一下大家就知道了老规矩,贴上效果图,这样大家才能更近距离的了解这是代码家的效果图,效果很多,支持listview,gridvie原创 2016-03-24 01:29:42 · 2907 阅读 · 4 评论 -
Android学习之6.0系统运行时权限设置
今天讲讲工作中遇见的6.0运行时权限处理问题,起因就是设置版本更新时,在6.0系统会报错,起因就是6.0动态权限设置,因为在google为了安全考虑,对于一些特定权限会征询客户授权,这当然会大大增加客户资料的安全性,当然也会让我们在工作中做一些小小的变动,下面就讲一下我在工作中是如何解决这些问题的首先copy一下6.0会征求用户授权的权限//联系人的读写权限group:android.permis原创 2016-03-23 10:38:19 · 2299 阅读 · 0 评论 -
Android学习之友盟开发这些坑
相信大家很多人都用过友盟,为啥用友盟呢?是因为友盟功能齐全,而且免费,但是,友盟的坑也是不少的,今天借着工作经验给大家解析友盟开发中遇见的那些坑,希望能够让大家少走些坑,哈哈!下载最新版本的SDK,解压,资源文件的导入,添加依赖这些我就不细说啊,这些都是最基本的,可以直接下载德莫,将demo中的资源文件等拷进去,避免错误!第一:添加权限跟对应平台,一般为微信,朋友圈,QQ,微博<?xml versi原创 2016-03-21 23:38:20 · 2174 阅读 · 0 评论 -
Android学习之RecylerView完美实现瀑布流效果
对于RecylerView已经讲解很多了,我们都知道RecylerView包含三种布局管理器,分别是LinearLayoutManager,GridLayoutManager,StaggeredGridLayoutManager,对应实现单行列表,多行列表,瀑布流式布局。也分别都具备水平跟垂直方向。今天主要讲解如何使用StaggeredGridLayoutManager来实现瀑布流。试过之后,发现还原创 2016-04-03 13:49:44 · 8264 阅读 · 5 评论