Android应用
文章平均质量分 89
TurkeyCock
这个作者很懒,什么都没留下…
展开
-
应用锁(AppLocker)原理及代码实现
最近工作上要用到应用锁(AppLocker),早上装了个试玩了一下,下午花了2个小时捣鼓出来一个demo (基于android 6.0),简单分享一下。 免责声明:这篇文章纯粹是个人YY,未参考或反编译任何商业app。 所谓应用锁,说白了就是在监测到目标app启动时额外起一个锁屏界面把它盖住。这种方式的缺点是显而易见的,无法100%保证盖住,有时候会先闪出一个app启动界面,然后才原创 2016-01-15 01:15:32 · 12628 阅读 · 19 评论 -
Android工具箱(一):3D ViewPager
好久没有更新博客了,积攒了很多UI效果,准备整理一下写一个系列。作为android前端程序员,最重要的就是在工作过程中不断丰富自己的类库,等要用的时候直接拿出来改改就行了,我把它命名为Android工具箱。今天要实现的一个效果是一个有科技感的3D ViewPager,看图:实现这个效果主要分两个部分:一. 无限循环ViewPager这个网上一搜一大把,无非就是下面两种实现方式:使得adapter原创 2017-12-01 16:09:46 · 906 阅读 · 1 评论 -
Android自定义ViewGroup(二)——带悬停标题的ExpandableListView
项目里要加一个点击可收缩展开的列表,要求带悬停标题,具体效果如下图:也就是说,在某一个分组内部滚动时,要求分组标题悬停,当滚出该分组范围时,把标题顶出去,悬停下一个分组的标题。正好看到一个比较有趣的思路,做了一个实现,在这里分享一下。代码结构如下,基本上是一个MVC的架构:既然是点击可收缩展开的列表,显然要用ExpandableListView,关于这个类的用法这里就不赘述原创 2016-12-06 01:04:53 · 6472 阅读 · 6 评论 -
Android清除单个域名的cookie
今天PM提了个需求:用户退出当前网页时,只清除该网页访问的域名相关的cookie,保留其他域名的cookie。查了一下CookieManager的API,发现只有removeAllCookie(),没有清除单独域名cookie的API。。。想想也是,用了这么多年的浏览器,啥时候见过这功能?既然系统没有提供接口,那就是只能自己想办法去清了。首先要搞清楚Cookie存在哪里吧?在/data/d原创 2016-11-09 00:25:04 · 5953 阅读 · 0 评论 -
clearAnimation()解决setVisibility()无效问题
跟同事一起搞一个退场动画,第一次播放没问题,第二次播放就发现有个view会先闪出来一下,然后再执行从0到1的alpha动画。但是代码里明明已经用setVisibility(INVISIBLE)隐藏这个view了,为什么没有生效呢?Google了一下,有人说要调一下clearAnimation(),试了一下果然好了。。。那么为什么加上这句就好了呢?得去看看framework的代码了,首先看一下V原创 2016-11-09 01:04:07 · 5997 阅读 · 0 评论 -
UnsatisfiedLinkError: dlopen "/data/data/<package>/app_jni_lib/libxxx.so is 32-bit instead of 64-bit
昨天掉到一个大坑里,本来说要增加arm64的支持,心想这还不简单,在libs目录下新建一个arm64-v8a的目录,然后对应的libxxx.so放进去就万事大吉了。提完patch,在三星Galaxy S6上试了一下没问题,就上线了~~ 结果刚上GP半小时,出现好几十个崩溃,评分刷刷刷往下掉,吓死宝宝了。。。报的错都是说库是32位的:java.lang.UnsatisfiedLinkError原创 2016-11-08 23:16:30 · 5041 阅读 · 3 评论 -
Android自定义工具栏(三)——FreeToolbar
接上篇,要想更自由灵活的配置工具栏,还是得自己定制一个,暂时取名为FreeToolbar。效果图跟之前是一样的:FreeToolbar有两种用法,一种是把FreeToolbar和PopupMenu作为组件在你的代码里直接引用,还有一种更省事的方法是继承封装好的ToolbarActivity,这里只介绍后一种。使用方法分为下面4步:Step 1:把下面这些文件拷进你的工程原创 2016-07-06 11:42:05 · 1424 阅读 · 0 评论 -
Android自定义工具栏(二)——试试Toolbar
接上篇,上篇提到要实现下面这个样子的工具栏:主要是两个改动:一是把三个小圆点换成三个小方点,还有就是把弹出菜单的位置改到下面。既然需要用到Toolbar这个组件,首先先在layout里加上下面这段: <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/原创 2016-07-06 11:41:07 · 4919 阅读 · 0 评论 -
Android自定义工具栏(一)——从ActionBar说起
事情的起因是这样的,UX说我们的产品需要一个工具栏,大概长下面这个样子:这个貌似很简单嘛,我隐约记得有个叫ActionBar的东西,配置一下应该就可以了。于是在onCreate()里调了个initActionBar()方法: private void initActionBar() { ActionBar actionBar = getSupportAct原创 2016-07-06 11:39:18 · 2271 阅读 · 0 评论 -
Android自定义ViewGroup(一)——带箭头的圆角矩形菜单
今天要做一个带尖角的圆角矩形菜单,大概长下面这个样子:要求顶上的尖角要对准菜单锚点,菜单项按压反色,菜单背景色和按压色可配置。最简单的做法就是让UX给个三角形的图片往上一贴,但是转念一想这样是不是太low了点,而且不同分辨率也不太好适配,干脆自定义一个ViewGroup吧!自定义ViewGroup其实很简单,基本都是按一定的套路来的。一、定义一个attrs.xml原创 2016-07-12 00:27:12 · 6014 阅读 · 1 评论 -
Android获取前台进程包名
在Android L之前的版本,获取前台进程基本上是用下面两种方法:(现在都已失效)方法一:getRunningTasks()这种方法不仅可以获取前台进程包名,还可以获取前台activity名。public String getForegroundActivity() { ActivityManager mActivityManager = (Activit原创 2016-02-29 15:03:07 · 10373 阅读 · 1 评论 -
startForeground如何去除通知栏
写app的时候经常希望某个service可以常驻内存,但是在系统内存低的时候还是不可避免的被杀掉,为了降低被杀掉的概率,一般的解决方式是通过startForeground()将service设置成前台运行。但是从android 5.0开始,前台运行的service必须在通知栏有一个常驻通知,点都点不掉,试想一下如果每个app都在通知栏有一个常驻通知的恐怖场景。。。那么有没有办法去除掉这个常驻通原创 2016-03-17 10:05:21 · 10811 阅读 · 7 评论 -
Android上运行Http Server
Android设备一般是作为客户端使用,但是最近一个项目需要用android开发板作为服务器和手机端通信,因此花了点时间研究了下如何在android上运行http server。实际上这是有开源解决方案的,叫做AndroidAsync,作者是Koushik Dutta,他的另一个开源项目是大名鼎鼎的ION,这是一个异步网络图片加载库。但是AndroidAsync几乎没什么文档,因此实际使用中遇到...原创 2019-01-19 19:33:36 · 8907 阅读 · 10 评论