- 博客(111)
- 资源 (36)
- 收藏
- 关注
原创 Mac操作的一些坑-记录贴
⇧+⌘+。显示/隐藏文件 ,想在全局.gradle文件夹下配置全局的gradle.properties文件会用到,哪个老哥说是英文的句号,让我郁闷了小半小时,记录下Mac下快速回到桌面,三个手指往上滑动,新增个空白的桌面即可未完待续…...
2020-07-26 23:23:00 892
原创 自定义View简介
文章目录onMeasure()实操:ScrollView + ListView 会显示不全问题onDraw()onTouch()自定义属性onMeasure()// 获取宽高的模式int widthMode = MeasureSpec.getMode(widthMeasureSpec); int heightMode = MeasureSpec.getMode(heightMeasureSpec);// 获取宽高的值 int widthSize = MeasureSpec.getSize(wi
2020-07-26 23:11:15 1166
原创 使用Mac打开mht格式文件
记录下一个坑,在win环境使用印象笔记导出格式为mht格式的文件,回到家使用Mac打开后。。。一、场景这边在使用Mac下打开保存的mht后缀格式的笔记文件时,发现支持的很不好,基本乱码,使用Chrome无法打开。尝试过下载各种印象笔记,有道云笔记,为知笔记等都无法打开,Chrome插件也尝试过,除了mhtviewer付费软件没尝试过。wps是可以打开,但是支持的非常不好。二、解决方案更改扩展名 .mht 为.eml,用邮件软件打开看是否正常一般邮件软件对该格式兼容性较强,然后点击默认会使用Mac自
2020-07-25 15:08:39 4563
原创 umeng推送客户端没收到
前言这边app组想把推送统一下,聚合推送选择了umeng,一切准备就绪,demo都正常运行,但是真正接入入app时,死活收不到推送,排查了下服务端,没问题。后续用控制台测试模式也无法接收到,基本问题定位在app端了。问题定位这个要从之前的app优化说起,自从功能越来越多后,我们的app也变成了一个多进程的应用,所以做了如下优化 /** * 判断是否是主进程 * * @return */ public boolean isAppMainProcess()
2020-06-15 22:34:59 402
原创 okhttp3x java.lang.nosuchmethoderror: no static method create
项目中一直使用的okhttp版本是3.x的版本,这次在某个module中使用了4.x的okhttp后,运行报错。java.lang.nosuchmethoderror: no static method create(ljava/lang/string;lokhttp3/mediatype;)lokhttp3/requestbody; in class lokhttp3/requestbody; or its super classes (declaration of ‘okhttp3.requestbo
2020-06-14 22:49:24 3028 2
原创 firebase上调试上传event
Fabric被彻底关停,好在可以直接迁移到firebase.但是firebase上的enent有点不是特别友好,所以记录下。需要自己手动添加自定义事件eventName,且有个数限制调试自己上传的event是否成功在terminal终端下输入如下指令,在调试过程中,可以看到具体的上传内容文档链接上传过程中注意eventname只不支持特殊字符(Event names can be up to 40 characters long, may only contain alphanumeric
2020-05-23 16:50:13 1610
原创 Linux常用指令
一、常用Linux指令lsof -i:9950 找到某个端口号的pid[root@root bin]# lsof -i:80-bash: lsof: command not found执行下面命令进行安装:yum install lsofkill -9 31664(pid) 结束某个pid应用程序 -9强杀rz 直接打开文件传输文件 选择文件上传sh 文件名 直接运行sh文件里面的脚本cat 文件名 编辑rm 文件名 删除 会弹出对话框 需要输入ycd …/ 返回上一层文件夹
2020-05-23 16:21:44 334
原创 Android Studio中设置代理
一、能科学上网(开启代理)后,as中的设置步骤1.设置对应的端口2.测试二、去除代理(坑)1.设置界面选择No proxy.发现去除的不是很彻底,检查项目中的gradle.properties配置文件是否有自动加入配置ip、port的代码,有则去除。2.别忘了as全局配置代码中的gradle.properties是否被加入ip、port的代码,去除后正常三、今天是3.31号,特...
2020-04-01 10:22:52 9375
原创 迁移AndroidX的坑
1.近期项目做了AndroidX的迁移,发现其中还是有些坑点的。注意,不需要提前添加任何配置这边提前吃了个螃蟹,提前加了开启配置后预编译,然后再去启动第二步的时候,发现AndroidX未被完全覆盖,需要手动修改。。。mmp#表示当前项目启用 androidxandroid.enableJetifier=true#表示迁移依赖包到androidx,如果不启用在使用依赖包中的内容时可能会出现问...
2019-10-29 19:47:35 982
原创 Android奔溃日志行数不对应
1.项目迁移到androidx后出现了奔溃日志行数不对应的问题,在日常开发中,甚是难受,问题定位比较麻烦。一番google后发现了解决方案https://stackoverflow.com/questions/52525155/crashlitycs-reporting-wrong-line-number-after-kotlin-migration2.原因:迁移androidx必须升级grad...
2019-10-29 19:40:02 1260
原创 入职两个月的一些总结
不知不觉来这个公司要两个月了,总体的感觉就是,来对了,刚刚好。所以总结下一些自己的不足和改进,然后就是打算做的一些事情,给自己立下一些flag。
2018-10-14 21:10:49 3633 2
原创 Android面试总结
以前都是看别人写面试经验,这次我也想写一次面试总结。说起这个很是惭愧,开发android有两年多的经验了,但是总感觉后知后觉,市场不断在变化。给我的感觉就是,15-16的时候出来只要你懂activity生命周期,会绑定数据,懂listview的复用机制,handler消息机制,事件分发机制,那么基本就能找到一份不错的工作,明显有变化的是17年,开始要懂得会用一些第三方的库,懂得基本的原理,然...
2018-08-11 18:04:23 548 2
原创 GreenDao无法生成xxxDao
我这边遇到一个问题,就是从公司svn拷贝过来的项目,一般情况下是不提交greendao目录中的gen目录的东西的,因为会自动生成。但是运行后发现指定目录下的gen目录不会自动生成。心情down到极点,一片爆红…解决方式(曲线救国): 那么我们换种思路,也就是说我们指定的目录下无法生成这个gen文件夹目录,那么我们去掉这个默认指定的目录,是否会在默认文件夹下生成这个gen目录呢,答案是...
2018-08-03 09:35:15 4690 1
原创 解决SVN Cleanup时遇到错误信息:Cleanup failed to process the following paths的错误
svn在偶尔会遇到Cleanup failed to process the following paths的问题。这里记录下我的解决方式1、遇到的问题如图 2、然后根据提示去clean up操作 3、好吧去解决它。工具文件夹选项,查看选择显示隐藏文件、文件夹、文件驱动。看到这个.svn的文件夹 4、找到wc这个数据库。用SQLiteManager打开 5、打开wc_l...
2018-07-17 16:40:07 3420
原创 ClickableSpan的简单使用
这里记录下ClickableSpan的使用。需要的效果是如下图 废话不多说,直接上代码。1.需要复写一个ClickableSpan的方法,这里可以自己定义效果package com.jmsht.taijixian.ui.message;import android.content.Context;import android.text.TextPaint;import and...
2018-07-04 10:30:56 6288 2
原创 ViewPager设置切换动画PageTransformer
这里记录下viewpager中的切换之间的渐变以及间距的动画 1、设置间距并展示多个页面边缘 主要是这个属性android:clipChildren=”false”表示的意思是: clipChild用来定义他的子控件是否要在他应有的边界内进行绘制。 默认情况下,clipChild被设置为true。 也就是不允许进行扩展绘制。那么我们设置这个ViewPager的父布局的android:cli...
2018-06-29 23:00:47 2304 1
原创 Android全局改变字体大小(坑)
这边分享一个功能需求,全局改变字体大小。当下的情景比较蛋疼…一个祖传的项目,需要在半路添加这个需求,各种字体大小已经写明在xml里面了,dp,sp,甚至xp不等。当时内心是拒绝的,但是由于用户反馈实在要做,而且app面向的用户为老年用户居多,还是决定踩坑了。这里也善意提醒大家,凡事留一线,日后好给自己留活路。所以,我进入了漫长的百度或者是google…正确的姿势勉强将就的姿势(成功...
2018-06-28 17:37:46 16935 14
原创 android post传递数组类型数据给后台php
这里分享一个android端传递数组给后台php的方式。后台要我传递的是一个二维数组,如下图。$data['Car']=array( "2_100" => array( "c1" => '2', "c2" => 0, "i" => '100', "c" => '00', "q&
2018-05-19 22:12:42 4276 2
原创 android开发笔记汇总(二)
有一段时间没有写博客了。一直想写,但是都被自己打败了,这里分享下这段时间遇到的bug之类的东西。adapter中的sort方法。。。 会自动生成两个基本对象,前面的是后一个对象,后面的是前一个对象,进行比较。一般是返回-1 0 1三个参数。。。负整数 0 正整数 0表示等于 1表示大于 -1表示小于吧dialog show之前要判断activity是否已经销毁。因为网络请求是异步请求,...
2018-04-19 22:16:57 849 2
原创 android开发笔记汇总(一)
1、long类型转换为int类型: 一、强制类型转换long ll = 300000; int ii = (int)ll; 二、调用intValue()方法long ll = 300000; int ii= new Long(ll).intValue(); 三、先把long转换成字符串String,然后在转行成Integerlong ll = 300000; int ii = Integ
2017-10-03 21:19:20 569
原创 activity启动黑屏的解决方案
这边做了一个修改字体大小的功能,跳转出来后需要重启主页,但是总是会黑屏,一步步排查后发现是主页启动的时候就是会黑屏,主要是oncreate和onresume中做了太多的动作,导致setcontntview的姿势久了一些,这也是android中预加载的机制。
2017-09-30 19:55:48 2703
原创 8月总结
眼看着博客再8月份要断片了。心里才幡然醒悟,这段时间彻底不再安逸了,我换了一个工作,刚好今天满3个月了,提了转正。所以还是特地来水一篇,记录下这段时间的点点滴滴。当然也是希望能给自己一点压力,好好迎接接下来的挑战。一、加班我是拒绝的真的,一开始来到这个公司,我心里想的每一分钟都是逃避,哎呀,为毛公司有了7个android还要我过来顶包,为毛还不给我svn账户给我看看源码,为毛还是没有任务,为毛下班了
2017-08-31 22:35:06 1378 1
原创 sharesdk分享到指定平台
sharesdk很容易集成社会化分享。但是一般都是直接弹出popupwindow进行选择分享,集成请看集成sharesdk分享短信第三方登录等 这里要记录下如何进行分享到指定平台,是在集成环境的基础下的。首先一点要初始化 ShareSDK.initSDK(this);//初始化社会化分享 private static final int
2017-07-08 15:27:51 1236
原创 MediaPlayer实现音乐文件的边下边播
这边的需求是仅仅是实现一个音乐的边下边播。思路就是截取后台返回的音乐链接。然后截取文件名,判断该文件是否在文件夹下存在。存在就使用sd卡的文件源进行播放,不存在就下载这个音乐文件,并且播放这个音乐链接。使用的是android自带的DownloadManager进行下载。默认是带标题栏的下载进度显示的,我们需要隐藏掉需要在清单文件下面进行配置, 需要权限隐藏 <uses-permission and
2017-07-08 15:17:57 2887
原创 时分秒倒计时有暂停功能
今天需要实现的是一个时分秒的倒计时功能。本来之前写过类似限时抢购的功能,想直接引用过来,发现还是不好复用,需要再加深理解下。使用CountDownTimer实现倒计时的功能,主要的逻辑就是“/”和“%”的道道。比较优雅好理解。。。
2017-06-20 19:27:55 2051
原创 android版本号
android { compileSdkVersion 24 buildToolsVersion "24.0.3" defaultConfig { applicationId "com.coofond.carservices" minSdkVersion 17 targetSdkVersion 24 versio
2017-05-29 16:39:47 545
原创 litepal的使用记录
郭霖大神的litepal还是很方便的。这里记录下我容易忘记的方法api一、基本配置使用方法1、添加依赖compile 'org.litepal.android:core:1.5.1'2、在asserts文件夹下建立litepal.xml并配置<?xml version="1.0" encoding="utf-8"?><litepal> <dbname value="dbname" />
2017-05-03 17:02:37 709
原创 android集成微信支付
这里分享下android端集成微信支付的步骤。一、首先到官网https://open.weixin.qq.com/创建一个应用,审核说是7天内。通过后获取AppID就可以进行愉快的开发了。二、基本步骤就是移动端拼接好后天需要的购物车信息,后台返回随机验证码以及第三方的商家号,生成订单。然后我们再通过随机验证码以及第三方的商家号,确认支付信息,获取微信支付需要的一些参数,进行支付就可以了。然后会有一个
2017-05-03 16:40:35 1083
原创 发布IIS别人的电脑无法访问的解决方法(防火墙已关闭)
由于自己的概念模糊,所以在IIS发布的服务端上走了一个深坑。主要讲下自己的问题,IIS上面的基本绑定IP不能随便选择。我们需要选择的是发出wifi的那个ip。通过cmd->ipconfig查看手机连接的ip。选择那个ip,ok,外部的电脑或者手机连接这个wifi后就可以成功访问我们发布的iis网站了。而且,我们按照genymotion的时候会同时安装一个vitrulbox会发出一个wifi,选择这个
2017-04-26 17:19:28 9100 2
原创 ExpandableListView无法展开
ExpandableListView的收缩功能还是比较常见的。所以就使用了,然而要的效果是不要这个组左侧的图标+在右侧图标显示收起还是放下。原因,主要是组的布局采用了checkbox控件导致的,只要在组布局控件加两个属性( android:clickable=”false” android:focusable=”false”)就可以了。<?xml version="1.0" encoding="u
2017-04-22 15:32:07 1269
原创 在for循环中remove list报错越界的问题
最近在搞一个购物车的功能,里面有一个批量删除的操作,采用的是ExpandableListView以及BaseExpandableListAdapter。视乎跟本篇无关紧要,主要是为了记录一个java基础。迭代器iterator的使用一、错误代码(主要就是购物车的批量删除)
2017-04-18 15:22:11 4042
原创 android实体类相同字段赋值
这里介绍个android中实体类的相同字段相互转换的快捷方法。一个个set简直会爆炸,后面发现了一个比较优雅的方式。通过你的json三方库。比如,我用的是gson,那么只需要先把第一个对象转为json串,然后让第二个对象再转换过来就可以了。比较方便,所以share,也当做是个记录。工具类 /** * 把modelA对象的属性值赋值给bClass对象的属性。 * * @p
2017-04-14 17:27:54 3454 2
原创 通过chrome来查看sqlite数据库
sqlite的是android内置的一个轻量级的数据库。同时在日常开发中可以作为数据缓存、终端简单逻辑处理的首选。可以说是数据持久化操作以及(CURD)增删查改的不二选择。但是比较头疼的是sqlite无法实时查看,一次次import处理用可视化工具查看显然是不可取的。这里记录下使用facebook的一个依赖库于谷歌流浪器相结合,进行类似于web调试的查看sqlite的实时查看方式。服气一、as中添加
2017-04-14 10:59:40 13215 4
转载 FragmentPagerAdapter强制刷新
今天遇到一个问题,就是在一个act中嵌套了viewpager,点击头部,会替换数据,然后刷新下面的viewpager所有的数据。我心里一想,不是也是FragmentPagerAdapter,然后一想应该有notifyDataSetChanged()方法,搞了下,确实有。但是不刷新数据,打断点也不重新执行fragment中的生命周期。心想应该是有复用机制了,无法强制刷新。度娘了下,确实是有的。一、原因
2017-04-13 14:23:43 5390
原创 android中EditText文本监听
今天记录一个监听EditText的文本监听。主要的效果就是如果edittext中有文本,那么对应的button可用,且显示颜色,若无文本,则显示灰色,button不可用。然而后台的erp感太重,所以会存在一个界面中监听多个edittext的情况,然后一个button的亮起或灰度。一、一个界面中仅有一个EditText的监听(addTextChangedListener)//监听输入框
2017-04-08 10:07:20 3474
原创 PulltorefreshRecycleview拓展(pulltorefresh库)
因为项目中引用了pulltorefresh的库。这个库的历史有点久远。。。12年的库。。。献上它的库https://github.com/chrisbanes/Android-PullToRefresh。这里比较蛋疼的是不支持recycleview了。。。so,github一把,搜到了这个改进的拓展库。https://github.com/chrisbanes/Android-PullToRefre
2017-04-01 11:06:38 792
原创 为什么你的程序不是从上往下执行的
博客关注了一位大牛。被成功煲了一壶鸡汤,于是开始卸荣耀,卸贴吧,装keep,装慕课。我不知道我能坚持多久,总之,无论身处何处,都要让自己看起来与众不同吧。 -题记作为一个发育了有一小段时间的码农来说,我渐渐开始了解了一些前辈不愿意告诉你的不知名的bug,摸索的过程有点不知所然。Ok,这
2017-03-25 16:58:20 1519
原创 为什么fragment使用hide()和show()而不使用replace()
在项目中fragmen的使用已经非常常见了。但是往往图方便用的是replace的方法进行的。方便是方便,但是replace是一个替换的过程,意思是remove掉当前的fragment,重新初始化一个new fragment进行替换,会重复完全执行新的fragment的生命周期。The new fragment to place in the container.官方文档解释说:replace()这个
2017-03-24 16:30:54 6653
原创 Android项目集成信鸽推送
记录下集成腾讯信鸽推送的步骤要领。给自己做个笔记: 创建应用: http://xg.qq.com/xg/apps/ctr_app/get_app_info?app_id=21002549611、应该很容易到这一步。然后需要添加测试设备,添加它的token。 这里可以通过log日志获取或者过debug调试获取到token。然后你就集成完毕了 XGPushManager.registerPush
2017-03-23 11:41:27 1563
原创 ratingbar的使用技巧(坑)
这里分享一个食之无味,弃之可惜的鸡肋。项目中的订单要写待评价订单,ios那边犯难了,没有对应的控件。android这边第一反应就觉得简单,因为ratingbar。结果发现确实有它坑的地方。提出ratingbar被放弃的两个原因。一、替换星星无法指定星星的高度(**) 二、无法指定星星之间的间距所以网上出了很多自定义的ratingbar控件。。。。只能投机取巧。稍微润色下,ratingbar就可以使
2017-03-21 17:28:09 1196
Genymotion-ARM
2015-12-17
ListViewForScrollview
2015-12-07
SoapUI Pro 5.4.0 X64_破解版
2018-07-05
轮播设置间距透明度
2018-06-29
信鸽推送Android端(Android信鸽推送demo)
2017-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人