在开发中经常会有一些需求,比如显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其他的一些形状。但是往往我们手上的图片或者从服务器获取到的图片都是方形的。这时候就需要我们自己进行处理,将图片处理成所需要的形状。正如茴香豆的的“茴”写法大于一种,经过我的研究,画出特殊图片的方法也不是一种,我发现了三种,且听我一一道来。
more
使用Xfermode 两图相交方式
通过查找资料发现android中可以设置画笔的Xfermode即相交模式,从而设置两张图相交之后的显示方式,具体模式见下图,源码可以去android apidemo。(SRC 为我们要画到目标图上的图即原图,DST为目标图)
由上图可以看到,如果我们需要画
继续阅读 »
Android 插件化框架 DL 学习笔记
早在两年前, android 的插件化技术就火得不行,一直只是浅略的翻看一些博客,没有深入研究其原理及其所使用到的新技术,这段时间恶补了一下这方面的知识,准备在博客中记录一下,做一些输出,加深理解。
继续阅读 »
当前是有些工具比如apktool,dextojar等是可以对我们android安装包进行反编译,获得源码的。为了减少被别人破解,导致源码泄露,程序被别人盗取代码,等等。我们需要对代码进行混淆,android的sdk中为我们提供了ProGrard这个工具,可以对代码进行混淆(一般是用无意义的名字来重命名),以及去除没有使用到的代码,对程序进行优化和压缩,这样可以增加你想的难度。最近我做的项目,是我去配置的混淆配置,因此研究了一下,这里分享一下。
如何启用ProGuard
ant项目和eclipse项目启用方法
在项目的project.properties文件中添加一下代码
proguard.config=prog
继续阅读 »
Android Accessibility 的少许开发经验
What's Accessibility
简单来说 Accessibility 就是为了让一些残障人士也能正常使用手机或 App 的基本功能,主要包括 Talkback ,视弱的支持等,具体参见:https://developer.android.com/guide/topics/ui/accessibility/
继续阅读 »
android:process 的坑,你懂吗?
许多知识知其然而不知其所以然,这也许就是大神与菜鸟的区别吧。
最近排查问题时发现一个问题: 一个在 Application 中启动的定时任务在运行时会被调用多次,诡异的很,最后发现是一个前人留下的坑,原因就是对 android:process 不知其所以然造成的。
继续阅读 »
Android 追加流生成 Mp4 文件技术方案(支持中断继续生成)
背景
Android 中 Mp4 文件的生成主要是通过 Mediacodec 将摄像头采集到的视频从 YUV 格式转成 h264 ,再通过 MediaMuxer 将 h264 的视频流生成 mp4 文件,这个过程就不在赘述了, Google 一搜一大把,其中需要注意的是在将 YUV 数据送入 Mediacodec 中之前需要将 YUV 格式从 NV21 转换成编码器能接收的 I420 格式,建议这个过程使用 JNI 来提高效率, java 的实现方式可以参考一下方法:
继续阅读 »
之前和朋友一起写一个Android APP,代码不算难,只是要我们一起写,这就出了一些代码合并上以及同步的问题。
今天讲的主要是GitHub上分支保持与主干源码同步的问题。
之前使用的时候就是项目挂在笔者的GitHub上,别人修改的代码提交一个pull request就能够合并到主分支中,但是一直没解决的问题是主分支代码更新了,但是别人的fork的仓库却并没有更新,这个问题课难倒了我们,弄了几次都没成功,后来就一直删除仓库,重新fork来保证代码的更新。
现在,这个问题终于解决了。
我来简单写一下解决步骤:
1.下载git客户端
相信如果要用Android studio的提交,应该都下载了git并且配置完毕。
2.启动命令
继续阅读 »
Google IO大会进行中,本次大会Android最大的新闻当属Android O以及Kotlin被官方认可。我发现了原来还有发布官方的架构库,以及推荐使用指南,分享给大家。
架构原则
关注分离
模型驱动UI,优先持久化模型
more
新架构
如上图所示,为新的架构模式:
Activity/Fragment
UI层,通常是Activity/Fragment等
监听ViewModel,当VIewModel数据更新时刷新UI
监听用户事件反馈到ViewModel。
ViewModel
持有保存,或者想Repository来获取UI层需要的数据
响应UI层的事件,执行响应的操作
响应变化,并且通知到UI
继续阅读 »
最近在本地编译Settings环境的搭建上走了点弯路,现在记录一下,希望能帮到有需要的同学。
1.解除ADT对android内部API的使用限制:
进入 eclipse的plugins文件夹,找出名为com.android.ide.eclipse.adt_*.jar的文件。做一个备份(以防修改错了),另外复制一份改文件到一个单独的”experimental”文件夹,在那里进行字节码修改。修改*.jar为*.zip,解压文件到一个单独的文件夹,下面就是我所得到的:
继续阅读 »
简介
本文简述的是在Android平台如何自动发送邮件(没有邮件编写界面),主要应用场景为忘记密码等安全等级较高的操作,比如我忘记密码了,点击“发送密码到我的邮箱”系统会将密码发送到注册时的电子邮件地址。
more
Android平台邮件客户端
继续阅读 »