Android
Happy 2010
这个作者很懒,什么都没留下…
展开
-
Android onFinishInflate 的理解
onFinishInflate 是添加在layout xml里面的view 被LayoutInflater 解析完addview 之后在回调的onFinishInflate 方法。构造函数是实例化一个View 都会执行的方法。从执行顺序来看也确实是构造函数执行早于 onFinishInflateonFinishInflate 执行早于 onMeasure onLayout函数public class CustomLinerLayout extends LinearLayout {...原创 2021-06-23 14:57:07 · 3919 阅读 · 1 评论 -
RecyclerView 的使用
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width...原创 2021-05-27 21:51:28 · 199 阅读 · 0 评论 -
Android ContentProvider 和 SQLite 数据库的简单使用
这里只是简单记录一下怎么使用ContentProvider 和 SQLite 数据库.多进程通信的时候也可以利用 ContentResolver 的query()/delete()/insert()/insert() 来获取数据,也可以通过call()传递不同的参数实现不同的意义.1.创建数据库public class NameListDBHelper extends SQLiteOpenHelper { private final static String TAG = "NameListD原创 2020-06-06 16:26:42 · 755 阅读 · 0 评论 -
Android XmlPullParser 解析xml
Android 解析Xml 的方式有多种,SAX、DOM、Pull 都可以实现,这里使用的是其中的一种.下面的代码主要是在IntentService 里面解析一个xml 白名单的.主要是记录一下,时间长了容易忘记.public class NameListServices extends IntentService { private final static String TAG = "NameListServices"; private List<AppInfo> infos原创 2020-06-06 16:10:49 · 228 阅读 · 0 评论 -
Android 实现圆形的 ImageView 的3种方法
方法1: 裁剪Bitmap,设置ImageView src主要是取缩放/裁剪Bitmap,然后设置给ImageView src或者background实际使用中发现系统app 的ICON 比较特殊,比如时钟/日历是动态的,把通过PackageManager 拿到的Drawable 转成BitmapDrawable 后显示出来的图片和在桌面看到的不一样的.具体为什么Drawable 转成BitmapDrawable后有这个异常现象暂时没有去研究.后面找时间去研究.public static ...原创 2020-05-31 17:05:24 · 6760 阅读 · 8 评论 -
android.view.WindowManager$BadTokenException: Unable to add window -- token null
今天在创建一个窗口的时候老是报错,很少郁闷。引起错误的代码如下:new AlertDialog.Builder(AppsInforAdapter.this.mContext) //出错的位置 .setTitle("提示") .setMessage("确认删除该应用吗?") .setCancelable(true) .setNegativeButton("取消", new Dial...2013-06-26 22:42:11 · 130 阅读 · 0 评论 -
Android 中dp 和px 转换及原理分析
具体的转换方法如下,网上都是有的,但是自己看了之后感觉还是有点不明不白的,具体为什么呢,可以继续看后面./** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().get...原创 2014-01-07 12:15:22 · 228 阅读 · 0 评论 -
性能优化之-使用HandlerThread
使用 HandlerThread 将loop转到子线程中处理分担MainLooper的工作量,降低了主线程的压力,使主界面更流畅.HandlerThread 其实也就是继承了Thread,并在run()方法内部执行Looper.prepare()和Looper.loop(),既然Looper 是在子进程创建的,所以消息的处理也就是在子进程处理的.我们如果创建 Handler 时使用Hand...原创 2019-03-18 19:49:10 · 2854 阅读 · 0 评论 -
监听未接来电
这里主要是总结一下如何监听有未接来电的问题1.1 使用广播接收器 BrocastReceiver实现思路 : 静态注册监听android.intent.action.PHONE_STATE 的广播接收器 当手机的状态改变后将会触发 onReceive.手机的状态分为CALL_STATE_RINGING(响铃中),CALL_STATE_IDLE(空闲),CALL_STATE_OFFHOO...原创 2014-10-27 14:41:35 · 271 阅读 · 0 评论 -
Android 使用 AndroidTestCase 的步骤
Android 使用 AndroidTestCase 的步骤1.新建一个类继承 AndroidTestCasepublic class TestAudio extends AndroidTestCase { private AudioManager mAudioManager; private boolean mUseFixedVolume; private fi...原创 2014-10-17 15:23:43 · 402 阅读 · 0 评论 -
如何实现Android 布局背景模糊化处理
在模仿 IOS 密码输入页面的时候发现其背景有模糊处理,于是了解了一下并记录下来,以便使用.在Android 中具体实现方法如下:查考 http://www.cnblogs.com/lipeil/p/3997992.htmlprivate void applyBlur() { // 获取壁纸管理器 WallpaperManager wallpaperManager = Wal...2015-03-25 10:09:07 · 2748 阅读 · 0 评论 -
Android设置RadioButton在文字的右边
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match原创 2014-03-11 09:52:27 · 173 阅读 · 0 评论 -
android 4.3之后使用ccache提供编译速度
ccache(“compiler cache”的缩写)是一个编译器缓存,该工具会高速缓存编译生成的信息,并在编译的特定部分使用高速缓存的信息, 比如头文件,这样就节省了通常使用cpp解析这些信息所需要的时间。如果某头文件中包含对其他头文件的引用,ccache会用那个文件的 cpp-parsed版本来取代include声明。ccache只是将最终的文本拷贝到文件中,使得它可以立即被编译,而不是真正去...原创 2014-03-06 21:32:00 · 175 阅读 · 0 评论 -
Android 类似未读短信图标显示数字效果的分析
之前一直以为是应用本身在对图标进行修改,看了源码之后发现其实主要的工作并不是应用自己完成的,主要的工作在是launcher里面完成的.关于系统里面类似未读短信的具体处理流程如下, 原理一个应用要实现这个效果,就要在自己有未读的消息的时候发送一个广播告诉系统我有未处理的事件了(例如:短信,电话和邮件等),同时将相关的信息进行保存,比如应用的名称(这里指的是ComponentNam...原创 2014-01-07 13:36:35 · 249 阅读 · 0 评论 -
android Intent 传递图片的2种方法
方法一:基本思路是先把bitmap转化为byte数组,用Intent传递数组,再将数组转化为bitmapbitmap转化为byte数组的方法:private byte[] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.co...原创 2013-03-11 11:00:15 · 2087 阅读 · 2 评论 -
代码中执行apk静默安装
代码中执行apk静默安装背景:应用需要升级来添加一些功能,但是需求是静默升级,也就是不需要用户直接去操作.方法总结:开始在网上看了一下资料,测试成功之后整理了一下相关修改.实现当前的需求是需要应用用的是当前的签名.如何获取权限和修改未平台签名:1、首先,我们要做的就是从Android的系统源码的/build/target/product原创 2017-02-14 15:42:35 · 3477 阅读 · 0 评论 -
ViewPager 常见滑动冲突解决方法
情况1:ViewPager中的第一个child View 中的子元素要求可以水平滑动.在实际中遇到的问题是ViewPager中的第一个child View 中的子元素一件拿到了Touch(action=move)的事件,但是滑动的时候距离总是小于ViewConfiguration.get(context).getScaledPagingTouchSlop() ,考虑到ViewPager 本原创 2017-02-14 15:41:35 · 2544 阅读 · 0 评论 -
图片处理常用方法总结
1. 高斯模式处理查考笔记"高斯模式"部分,有专门总结2.裁剪图片(按屏幕比例)下面这个方法是将传入的bitmap(当初写这个方法的时候是取得系统壁纸)根据屏幕尺寸来裁剪public Bitmap setAndcropWallpaper(Context context,Bitmap wallpaper) { Bitmap targetBitmap = null;原创 2017-02-14 15:41:04 · 618 阅读 · 0 评论 -
IPC-AIDL的使用实例和分析
IPC-AIDL的使用实例这份笔记主要是为了记录跨进程通信IPC的其中方法之一的AIDL 的使用.需求假设:现在2个不同的应用需要相互直接传递消息,并且客户端还需要调用服务器的方法.这个时候使用AIDL 就是很好的选择.为了使这份笔记有更好的价值,这里客户端要求可以接到服务器的通知也就是说客户端让服务器做了一件事件,服务端做好了之后需要告诉客户端.也就是观察者模式.原创 2017-02-14 15:37:47 · 415 阅读 · 0 评论 -
IPC-Messenger使用实例
IPC-Messenger使用实例这份笔记主要是为了记录跨进程通信IPC的其中方法之一的Messenger的使用.需求假设:现在2个不同的应用需要相互直接传递消息.这个时候使用AIDL 就是很好的选择.为了使这份笔记有更好的价值,这里客户端要求可以接到服务器的通知也就是说客户端让服务器做了一件事件,服务端做好了之后需要告诉客户端.也就是类似观察者模式.注意: M原创 2017-02-14 15:37:05 · 542 阅读 · 0 评论 -
如何在代码中获取attr属性的值
如何在代码中获取attr属性的值获取arrt的值有时候我们需要把颜色,数值写成attr属性,这样做是为了屏蔽开发者对应具体数值,比如我们需要设置不同主题下的主色,副色,或者是不同版本的ActionBar大小,亦或者是不同Dpi下的DrawerLayout的宽度等。在xml里,我们可以简单的引用attr属性值,例如:androi原创 2017-02-14 15:36:09 · 2576 阅读 · 0 评论 -
使用Palette提取图片的颜色信息
使用Palette提取图片的颜色信息在android L之后就可以在导入android support v7 palette jar 包就可以使用Palette来获取图片中的颜色.由于需要在锁屏页面根据锁屏壁纸的颜色来适配相关图标的颜色和字体颜色,所以就了解了一下Palette的使用,当然不是要Palette也是可以实现这个需求的.后面也会记录一下使用其他方法实现这个需求.1.原创 2017-02-14 15:35:35 · 779 阅读 · 0 评论 -
自定义Preference时遇到的问题
在自定义Preference时需要使用一个完全不同的布局,在使用的过程中遇到一个问题,就是数据刷新不了.找到很长时间,现在总结一下原因,以便后续犯了类似的错误. 上面图中的红色部分就是我想要的效果的未完成的样子,本意是想传递4个float 类型的数字后,可以把手机存储的使用情况显示出来.但是发现数据也已经传递成功了,对应的textview 打印的值也是期望原创 2017-02-14 15:34:17 · 1740 阅读 · 0 评论 -
HorizontalScrollView 和GridView 实现横向滑动
用 HorizontalScrollView 和GridView 实现横向滑动时用几个地方需要注意的,这里记录一下,以便后续参考.1.GridView 显示大小异常.不管在布局中如何设置宽高,会发现都没有效果,这个时候要把HorizontalScrollView 的布局中增加android:fillViewport="true"2.不可以使用Horizont原创 2017-02-14 15:32:25 · 3166 阅读 · 0 评论 -
自动抢红包-辅助功能的使用
最近了解了一下这方面的知识,参考网上的一些博客,自己再完善了一下,写了一个自动抢红包的app.本应用支持QQ和微信挂后台时自动抢红包支持在微信和QQ的消息列表页面自动抢红包支持在QQ群和单个好友消息会话页面自动抢红包不支持在单个微信聊天页面自动抢其实主要是AccessibilityService相关的一些知识,可以参考android 文档,以下是国内的链接.原创 2017-02-14 15:31:40 · 2552 阅读 · 2 评论 -
Perference标签的使用
在xml文件的Preference标签中,用给标签加参数在xml文件的Preference标签中,用给标签加参数,以及标签的android:targetPackage和android:targetClass属性使用注意事项xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.co转载 2017-02-14 09:50:56 · 375 阅读 · 0 评论 -
Android自定义属性,attr format取值类型
这里先举个简单的例子,其他可以参考后面的.实例自定义attr.xmlxml version="1.0" encoding="utf-8"?> name="text" format="string"/> name="textColor" format="color"/> name="GuaView"> name="text"原创 2017-02-14 15:21:26 · 609 阅读 · 0 评论 -
android 预置apk so库 jar包等
android 预置apk so库 jar包等LOCAL_PATH := $(call my-dir)这一行每个Android.mk 都是要添加的1.预置aliuyi.apk预制一个普通的apkinclude $(CLEAR_VARS)LOCAL_MODULE := wwwa.apk LOCAL_SRC_FILES := aliuyi.apkLOCAL_MO转载 2017-02-14 10:50:27 · 4372 阅读 · 0 评论 -
Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
@SuppressLint("NewApi")public class UriUtils { /** * Get a file path from a Uri. This will get the the path for Storage Access * Framework Documents, as well as the _data field for the MediaStore原创 2017-02-14 15:43:50 · 1025 阅读 · 0 评论 -
高斯模糊Android
高斯模糊Android前提:当前的需求是要求用户每次下滑状态栏的时候看到的都是目前打开应用的模糊化的背景.下面的介绍主要是围绕实现这个需求来的.下面介绍几使用和见过的方法方法1:获取当前屏幕截图(使用SurfaceControl.screenshot),进行高速模式处理,如果获取结果为null 就使用壁纸来代替(为考虑是宽屏壁纸或者不归宿壁纸会出现压缩的情况),原创 2017-02-14 15:47:34 · 1191 阅读 · 0 评论 -
sqlite 模糊搜索rawquery报错: bind or column index out of range:
今天使用了android里面的sqlite的模糊查询出错了:android.database.sqlite.SQLiteException: bind or column index out of range: handle 0x580608错误代码:String sql = "select * from " + TABLE_USER + " where people_name lik...原创 2012-10-21 17:48:13 · 358 阅读 · 0 评论 -
Activity和Service 使用Binder进行通信
Activity和Service 使用Binder进行通信 涉及到2种情况,一种是跨进程,一种是不跨进程的.1.Activity和Service 使用Binder进行跨进程通信其实这个可以参考之前已经记录的2篇文章,已经解释的很具体了,不做说明.IPC-AIDL的使用实例和分析IPC-Messenger使用实例2.Activity和Service 使用Binde原创 2017-11-15 15:43:59 · 1317 阅读 · 0 评论 -
关于监听通知栏通知的常用方法的记录
第一种方法:使用辅助功能AccessibilityService 相关的就可以实现.具体使用方法可以参考之前的一篇文章:自动抢红包-辅助功能的使用 http://blog.csdn.net/lezhang123/article/details/55100133第2 种方法:使用NotificationListenerService.具体可以先参考知乎的这个链接:https:原创 2021-05-27 21:11:43 · 1221 阅读 · 0 评论 -
Android避免内存溢出(Out of Memory)方法总结
在微信上面看的一个不错的文章.避免内存溢出的方法,主要是对以下三个方面对程序进行优化内存引用在处理内存引用之前,我们先来复习下什么是强引用、软引用、弱引用、虚引用强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠转载 2017-06-20 11:12:34 · 495 阅读 · 0 评论 -
Android GridView 选择item 放大的动画
最近有用到在GridView 中选择单个的Item 时,需要将选择的Item 放大的需求.就网上查找了一下相关资料,同时查看了一下android相关的源码.这里记录一下,一般日后回忆和继续完善这个笔记.首先我们要知道在上面描述的情况下,一个ViewGroup 会有几个child view.我们如果只是直接使用缩放动画去放大那个选中View 会发现一个问题:选中的view 放大之后会原创 2017-03-21 18:06:39 · 2224 阅读 · 0 评论 -
常用知识备忘录
Android 5 沉浸式状态栏item name="android:colorPrimaryDark">@android:color/holo_blue_bright name="android:colorPrimary">@android:color/holo_blue_brightAndroid 6 修改状态栏背景颜色if (Build.VERS原创 2017-02-13 15:48:06 · 283 阅读 · 0 评论