Android
文章平均质量分 70
小单是个程序媛
以前做安卓开发,后面转自动化测试,性格开朗幽默,爱好广泛,偶尔喜欢码码字。
展开
-
linux环境下的jenkins+flutter自动化打包全记录
最近在做测试的时候,有个挺让人糟心的事,就是每次都得自己跟开发人员要新包测试,作为一个曾经的开发人员,我觉得还是自力更生更稳妥些,再说了,打包这种小事,难得到我吗?既然打算自己弄,那干脆把自动化打包排上日程吧。接下来就来讲讲我的flutter+jenkins自动化打包之路。我们的项目是放在Git上进行管理的,可是呢?我不知道为什么明明一个项目,分成了四个仓库去管理,然后我的同事居然每次要打开四个AS的窗口。额,flutter这么不智能的吗?怪我离开Android圈有点久了。既然这样,那也没关...原创 2020-10-19 18:07:14 · 2273 阅读 · 0 评论 -
简单的水印拍照
重写拍照页面加上时间和经纬度水印,水印拍照类代码如下:/** * 水印拍照页面 * Created by sherry on 2017/9/27. */public class WatermarkActivity extends Activity implements CameraInterface.CamOpenOverCallback, CameraInterface.OnSav...原创 2019-12-18 09:46:20 · 232 阅读 · 0 评论 -
第三方库 图片选择MultiImageSelector兼容Android 7.0+
项目接手的时候就用了MultiImageSelector的jar包,可是到后面发现要在上面新增一些需求,比如加水印呀什么的,而且因为现在Android系统版本越来越高了,当我想统一第三方库和项目的build.gradle的编译版本时,发现拍照和录制视频出问题了,于是我把这个第三方库拷贝了下来,并且开始Android 7.0+的兼容。1、在res目录下新建一个名为“xml"的文件夹,然后在里面新...原创 2018-06-05 12:15:32 · 2403 阅读 · 3 评论 -
一个跟随屏幕旋转的自定义水印控件
这几天在做一个拍照加水印的功能,开发的过程中要求可以横向拍摄,但是水印也要跟随着屏幕的方向,因为水印显示的是当前的经纬度,总不能说我把手机倒着,让文字也倒着显示吧,所以就要求写一个能跟着屏幕旋转的水印控件。自定义控件的代码如下:public class WaterMarkView extends View { private Context mContext; priv...原创 2018-04-03 11:35:29 · 496 阅读 · 0 评论 -
没有安装Android Studio的环境下,使用gradle进行命令行打包
一、下载并配置gradle的环境变量第一种方式:(1)下载gradle,在系统变量的Path里面添加gradle下的bin路径,例如D:\Program Files\Android\AndroidStudio\gradle\gradle-2.14.1\bin。第二种方式:(1)下载gradle,在系统变量中新建一个GRADLE_HOME,填入gradle的路径D:\Program F...原创 2018-02-25 17:09:17 · 1553 阅读 · 0 评论 -
查看进程优先级
每次做保活都要查一下,干脆这边记录一下,免得自己忘了adb shellps|grep ${包名}cat /proc/${pid}/oom_adj原创 2018-03-02 17:44:51 · 1132 阅读 · 0 评论 -
通讯录姓氏多音字的问题解决
之前做了通讯录的功能,发现多音字的姓氏在错误的字母下面,比如曾(zeng)在C字母下面,所以自己在原来的代码上做了优化,废话不多说,我这里也只是记录一下,所以直接贴代码。package com.sherry.contact.util;import android.text.TextUtils;import android.util.Log;import java.text.Collato...原创 2018-02-28 14:59:33 · 3308 阅读 · 0 评论 -
Android利用ffmpeg压缩视频
因为整个ffmpeg是很大的,我这边只需要对mp4格式的视频进行压缩,具体情况是拍摄10秒的视频,给它命名的时候就设置成mp4的格式。我用的ffmpeg是3.0版本,生成的so库比原来的小很多,具体怎么生成so库就不细说了,网上一大堆,而且我自己踩过的坑也忘了不少了。我封装成了一个库文件,最后github地址在此:https://github.com/iamupgirl/MediaCompress原创 2018-01-16 11:43:33 · 3897 阅读 · 0 评论 -
App的版本从22升到25出现的问题记录
由于同事要引入一个视频监控的库文件,所以最近在开发的一个App不得不从22升到25,然而升到25之后各种问题就涌现了,记录一下。问题一:使用的MultiImageSelector第三方库在拍照时发生crash的问题。原因:在版本为25时,从文件获取Uri,不能再使用Uri.fromFile("文件名")。例如在该第三方库的MultiImageSelectorFragment类中,有这样一行原创 2018-01-05 18:13:21 · 296 阅读 · 0 评论 -
OpenGL ES的函数解析和记录理解
昨天看了相关的视频,所以把openGL ES中需要用到的转换相关的函数,随手记录一下。原创 2017-11-23 17:59:06 · 506 阅读 · 0 评论 -
OpenGL ES 之对各种坐标系统的记录理解
上周看了一个斯坦福的关于OpenGL ES的视频,记录一下相关的坐标系。原创 2017-11-23 10:28:35 · 980 阅读 · 0 评论 -
在Android APP里面打开在线的office文档
只需要用“https://view.officeapps.live.com/op/view.aspx?src=” 开头,再拼接上你要打开的文档的地址,要注意的是这个不支持本地,只支持在线的文档。例如https://view.officeapps.live.com/op/view.aspx?src=http://ov8cibje2.bkt.clouddn.com/%E5%B0%8F%E9%A5%A...原创 2018-06-01 09:41:02 · 5230 阅读 · 2 评论 -
MVVMHabit学习记录——ViewPager demo
最近项目想换成MVVMHabit框架,然而这才刚用,我就发现了一个问题,文档关于ViewPager这一块的内容几乎没有,没办法,只好自己去研究了,顺便写个demo让自己和其他人学习学习。我先创建了必备的GuidanceActivity、GuidanceViewModel、GuidanceItemViewModel,还有两个布局文件,代码很简单,这里就不赘述了,直接贴代码:public cla...原创 2018-07-19 17:09:21 · 3482 阅读 · 1 评论 -
Robolectric测试报错集合
1、JsonObject not mocked这是因为JsonObject属于Android SDK,我们如果做单元测试需要用到它,那就需要引入json.jar包。所以,第一步:下载json.jar包下载地址:https://mvnrepository.com/artifact/org.json/json随便选一个日期,我这里下载最新2018年8月13号发布的,如下图所示:...原创 2020-03-26 10:32:58 · 1663 阅读 · 0 评论 -
svn错误和解决方法记录
1、Failed to run the WC DB work queue associated with 或 Error:svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted解决方法:C:\Users\ASUS>cd E:\shili-zhhz-hf-trunk\....原创 2018-12-25 18:22:23 · 798 阅读 · 0 评论 -
Android Broadcast Receiver的坑
最近在做开发的时候,需要用广播来传递实体类对象,例如把C实体类对象从AViewModel传递到BViewModel。因为传递的这个对象是存在内存当中的,并且与View之间做了绑定。在开发的过程中,我发现C对象传递到BViewModel中时,会变成一个新的对象,因此导致了我无法拿到其对应的View,做个记录免得以后再遇到这个坑。...原创 2018-12-25 18:20:57 · 395 阅读 · 0 评论 -
bug记录——toUpperCase 方法失效
今天发现一个超级隐藏性的bug,首先放上我的源代码:if (Character.isLetter(arr[i])) { String s = String.valueOf(arr[i]); s.toUpperCase(); sb.append(s);...原创 2018-09-04 17:24:50 · 3444 阅读 · 0 评论 -
手把手教你生成自己的图片压缩的so库
最近安卓开发里面最火的是什么?NDK开发啊,之前面试的时候好几家公司都问我会不会这个,或者直接就出了这样类型的笔试题,当时的我也是一脸懵逼。恰好这段时间研究了图片压缩和视频压缩的NDK开发,话不多说,开干吧! 以往的图片压缩大家都知道无非是进行图片质量压缩和按比例压缩,但是这样不靠谱啊,压缩严重点直接就趋于马赛克(可能有点夸张)了,好伐。于是libjpeg就登场了,具体为啥,我就不说了,请看上一篇的英文介绍,而且网上一大片相同的原因介绍。今天我主要讲的是生成自己的libjpeg.so库。原创 2017-07-08 19:20:04 · 2119 阅读 · 2 评论 -
关于安卓图像显示比iOS差的原因(英文文档)
There are so many comparations between Android phone and iPhone. We cannot make the conclusion about which one is better, but we all knows that the image quality of Android phone is much worse than iP原创 2017-07-08 17:40:01 · 371 阅读 · 0 评论 -
android-async-http框架的学习和使用
开发APP,前后台服务器和客户端联调是必须的,所以通常我们需要实现http网络请求。今天就来讲讲android-async-http框架的简单使用。原创 2016-03-29 16:53:04 · 670 阅读 · 0 评论 -
如何用AS画出简单的图形
个人画图小心得,简单的图形自己画哦!原创 2015-09-16 23:27:52 · 2527 阅读 · 0 评论 -
Android高级界面组件的学习(三)
高级界面组件学习之AlertDialog原创 2015-09-29 00:30:12 · 649 阅读 · 0 评论 -
关于Glide——一个高效的图片加载和缓存类库
Glide,一个高效的图片加载和缓存类库原创 2015-09-28 21:26:10 · 8687 阅读 · 0 评论 -
Android的动画效果浅解析
毕业设计中用到了一些动画效果,个人感觉还是蛮有用的。所以记录一下,是很多地方可以用的小而实用的动画效果。首先要介绍的是只有在两个Activity跳转之间才能用到的overridePendingTransition,从字面意思来看,它跟切换有关。我们手机通常自带切换效果就是当前界面成界面宽高比例向中间缩小至消失,说实话,看多了,也会觉得很low,所以各大APP在动画效果上做了些设计。我们知道普遍原创 2015-06-26 01:04:19 · 625 阅读 · 0 评论 -
Android高级界面组件的学习(二)
在上个博客的基础上我继续巩固LayoutInflater的使用,同时介绍一下Tabhost。我们在很多地方会看到手机界面的顶部或底部有一些可切换的图标,这些图标的监听事件是会让界面进行平滑跳转的。下面我就通过代码来介绍一下Tabhost,以及它是如何实现这种功能的。原创 2015-06-26 00:05:31 · 628 阅读 · 0 评论 -
LayoutInflater的使用详解
这段时间因为做毕业设计,再加上之前实习,一直有用到LayoutInflater,所以把自己学到的关于LayoutInflater只是做一个总结和记录。原创 2015-05-21 08:48:04 · 622 阅读 · 0 评论 -
Android的五大布局
学习安卓的五大布局原创 2015-02-11 14:09:08 · 1939 阅读 · 1 评论 -
Android高级界面组件的学习(一)
Android高级界面组件AutoCompleteTextView,Timepicker 和 DatePicker的学习原创 2015-02-26 13:57:27 · 1432 阅读 · 0 评论 -
通过登陆页面对Android的基本组件介绍
通过登录界面对Android基本组件进行学习。原创 2015-02-08 22:52:39 · 687 阅读 · 0 评论 -
DisplayImageOptions对象的使用和".9"图片的冲突问题
1、通常我们在新建一个Activity的时候,系统会自动给我们创建一个命名为“MainActivity”的java文件和它对应的“activity_main”的xml文件。步骤如下:(1)在eclipse的上方工具栏找到“file->new->Android Application Project”,在弹出来的界面输入应用名,工程名,包名,根据默认的步骤就生成一个系统默认的工程“Hello原创 2015-02-07 11:11:12 · 815 阅读 · 0 评论 -
JSON数据造假和解析
客户端开发通常要从服务器获取数据,所以就需要调用后台的接口,然后获得后台返回的数据,根据这些数据的格式进行JSON解析。由于后台返回的数据会有不同的格式,所以前端也要采取不同的JSON.parse()方法进行解析。原创 2015-12-24 20:41:09 · 5341 阅读 · 0 评论 -
Handler消息传递机制
在安卓中,出于性能优化的考虑,UI线程操作并不安全,于是Android制定了一个规则:只允许UI线程修改Activity里的组件。但是这条规则又导致了另外一个问题,因为在Android平台上只允许UI线程修改Activity里的UI组件,导致新启动的线程无法动态改变界面组件的属性值。但这并不满足开发者的需求,特别是游戏开发者,因为需要让新启动的线程周期性地改变界面组件的属性值,因此就需要Handler的消息传递机制来实现了。原创 2015-12-24 23:28:29 · 425 阅读 · 0 评论 -
Fragment的来源和理解使用
Fragment的生命周期、和Activity的区别等介绍原创 2015-12-24 23:25:10 · 563 阅读 · 0 评论 -
ButterKnife的学习和使用
最近去面试有不少公司都有问到ButterKnife这个框架,作为一个特老实的孩子,我也是没用过就老老实实地承认没用过。结果前两天在网上看了一下ButterKnife的用法,两个小时不到就搞懂了,所以说还是要多学习、多接触、多使用。趁热打铁,于是自己写了一个简单的demo吧,毕竟光看不练还是会有问题的,有些坑早踩晚踩都是踩。原创 2017-04-05 19:16:37 · 343 阅读 · 0 评论 -
关于应用认领,空包重新签名踩过的坑
有些时候,某些应用市场上已经存在自家平台的APP了,所以在更新版本时要先进行认领,普遍是通过包名进行搜索到自家APP,比如“com.xueli.mydemo”,然后应用市场会给你提供一个空包进行签名,今天就来讲讲我踩过的坑。原创 2016-11-07 12:04:52 · 4129 阅读 · 2 评论 -
照相机预览、拍照以及适配问题的完美解决
前段时间在做face++相关的功能,对于照相机也是进行了一番研究,小有收获,解决了不少拍照预览图片模糊、部分机型黑屏等问题,目前已经保证了团队里面十多部安卓手机的完美适配。原创 2016-11-18 11:14:00 · 9530 阅读 · 4 评论 -
下拉刷新框架Android-Ultra-Pull-To-Refresh的学习
下拉刷新框架Android-Ultra-Pull-To-Refresh的学习与使用原创 2017-02-13 17:23:27 · 1454 阅读 · 0 评论 -
自定义控件初学篇——onDraw()方法
初学自定义控件,关于我对onDraw()方法的使用和理解。原创 2015-12-21 23:03:58 · 4099 阅读 · 0 评论 -
自定义控件初学篇——onMeasure()和onLayout()方法
通过自定义View,我们可以画出一些简单的图形并进行应用。上一篇中我讲了自己对onDraw()方法的一些理解和运用,今天就来讲讲onMeasure()和onLayout()两个方法的理解和使用。原创 2015-12-22 23:42:52 · 1555 阅读 · 0 评论 -
Android Studio 初相遇
这就是我最近使用AS中遇到的一些问题和解决方法,欢迎指正。原创 2015-08-30 22:38:41 · 615 阅读 · 0 评论