- 博客(45)
- 资源 (4)
- 收藏
- 关注
原创 Android Studio 代码模板插件实现
可以跳过背景和简述,从模板插件实现开始看.开发新页面时,原先需要写一堆模板代码。并且类文件间还有相互的引用关系。如果能有一套代码模板,可以一键生成最小单元功能代码,确实能提高新开发页面的效率。(加快1~2个小时不为过吧?
2023-07-26 19:43:28 1214
原创 Android启动优化工具(一) Method Tracking
Android优化系列 http://blog.csdn.net/mwq30123/article/category/6638876前言当我觉得app在启动或者某处执行比较慢时,我需要开始我的优化工作了。大多数情况下,是因为在主线程执行了耗时的操作。 Android Studio 自带的 Method Tracking 可以很直观的看到某个时间段内哪个方法花了多少时间,真的屡试不爽!!!Met
2017-02-05 19:14:37 1465
转载 Android 减小安装包大小(二) 利用 APK Analyzer 为应用“瘦身”
Android Studio的插件 APK Analyzer, 利用 APK Analyzer 为应用“瘦身”
2017-01-18 17:38:49 2281
原创 Android Accessibility功能
简介Android的Accessibility功能,可以监听我们手机的焦点,窗口变化,按钮点击等等,同时可以进行一定程度的自动触觉反馈,手势操作等等。 实现它的AccessibilityService需要在手机设置里面->辅助功能在这里面找到你自己实现的辅助类。
2017-01-18 11:17:59 3813 1
原创 Android 减小安装包大小(一)Lint
这篇文章的主题是APK Reduce Size。 所以第一步,用Lint来 Check unused resources。 第二步,我们利用第一步的结果,java 实现 batch clean unused resource。
2017-01-15 21:53:00 2184
原创 Android内存优化工具(四)LeakCanary
Android优化系列 http://blog.csdn.net/mwq30123/article/category/6638876介绍LeakCanaryCanaryCanary(金丝雀)对空气中甲烷和一氧化碳浓度的高敏感度使它成为最早的煤矿安全报警器。如果煤矿中的金丝雀死去,矿工就需要尽快撤离矿洞,否则会有致命的危险。 金丝雀同样也是防护栈溢出攻击中的那个金丝雀。 金丝雀同样也是电影寻龙
2017-01-07 20:01:46 820
原创 Android内存优化工具(三)MAT
前提Android优化系列 http://blog.csdn.net/mwq30123/article/category/6638876MAT介绍和获取官网https://eclipse.org/mat/ Memory Analyzer (MAT)是一个Java堆分析器,分析hprof文件,查看内存中都要哪些对象,都占用了多少内存,查看谁阻止Garbage Collector收集对象。
2016-12-29 15:19:02 1555 2
原创 adb bugreport -- Failed to get bugreportz version
今天在查看电量时候,需要导出5.0手机的bugreport。结果出现了下面的错误日志,几个月前用的还是好好的啊。adb bugreport > xxx.logFailed to get bugreportz version, which is only available on devices running Android 7.0 or later.Trying a plain-te
2016-12-26 19:06:39 8872 2
原创 Android内存优化工具(二)HPROF Viewer and Analyzer
Android优化系列http://blog.csdn.net/mwq30123/article/category/6638876Android内存优化工具(一)Allocation Trackinghttp://blog.csdn.net/mwq30123/article/details/53842023HPROF Viewer and Analyzer介绍当你用Memory
2016-12-23 17:27:55 1989
原创 Android内存优化工具(一)Allocation Tracking
Android优化系列 http://blog.csdn.net/mwq30123/article/category/6638876现在关于Android内存优化的文章已经很多。但是看完之后,还是一头雾水不知道怎么优化内存。这篇文章的切入点是以一个案例去介绍内存优化工具使用。文章简化了很多概念,旨在帮助你迅速的入门。项目case 地址:https://github.co
2016-12-23 17:23:26 4310
原创 Activity launchMode
Activity在AndroidManifest.xml中可以指明的launchMode可以有: standard,singleTop,singleTask,singleInstance。这些启动模式是针对于Activity在Task中的位置,来产生不同。
2016-03-15 17:21:01 637
原创 AndroidStudio 快捷键
command + o findClassshift+ command + o findFilecommand +f 文件内搜索shift+ command +f 工程内搜索command +r 文件内replaceshift+ command +r 工程内replacecommand +
2016-02-20 15:12:11 515
翻译 android 机器耗电
1.Alarm唤醒频繁会导致待机耗电增加:手机灭屏后会进入待机状态,这时CPU会进入休眠状态。Android的休眠机制介绍的文章很多,这里引用一段网络文章:Early suspend是android引进的一种机制,这种机制在上游备受争议,这里 不做评论。这个机制作用在关闭显示的时候,在这个时候,一些和显示有关的 设备,比如LCD背光,比如重力感应器,触摸屏,这些设备都会关掉,但是系统可能还
2016-02-20 14:53:01 812
转载 正则表达式语法
正则表达式语法Visual Studio 2005 https://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.80).aspx 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式示例表达式
2015-07-28 12:04:09 561
转载 AsyncTask的介绍及基本使用方法
AsyncTask的介绍及基本使用方法关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复。AsyncTask引发的一个问题上周遇到了一个极其诡异的问题,一个小功能从网络上下载一个图片,然后放到ImageView中,是用AsyncTask来实现的,本身逻辑也很简单,仅是在doInBackground中用HT
2015-07-28 10:27:53 650
转载 Android 系统稳定性 - ANR
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-07-22 10:02:10 933
原创 删除android工程不再使用的资源文件
删除android工程不再使用的资源文件1.先cmd调用 lint --check "UnusedResources" /Users/alvin/Documents/workspacenewjuno/Alvin_Android7bug > ~/Downloads/result.txt2.printusedLineFrom 方法是打印出来复制到文件里面remov
2015-07-20 17:09:06 837
转载 Java 动态代理
引言Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 动态代理机制有更加深入的理解。本文首先从 Java 动态代理的运行机制和特
2014-06-25 11:40:07 674
原创 java类的惰性初始化
当使用 “.class” 来创建对Class对象的引用时,不会自动地初始化该Class对象。为了使用类而做的准备工作实际包括三个步骤:1.加载,这是由类加载器执行的。该步骤将查找字节码(非必须),并从这些字节码中创建一个Class对象。2.链接。在链接阶段将验证类中的字节码,为静态域分配存储空间,并且如果必需的话,将解析这个类创建的对其他类的所有引用。3.初始化。如果该类具有超
2014-06-24 16:10:06 3552
原创 异常输出到字符串和自定义异常记录
package com.a;import java.io.PrintWriter;import java.io.StringWriter;import java.util.logging.Logger;public class LogE {/*** @param args*/public sta
2014-06-19 16:48:00 795
原创 android 给选中的文字添加点击事件和修改audoLink 的超链接样式
package com.a;import java.util.regex.Matcher;import java.util.regex.Pattern;import java.util.regex.PatternSyntaxException;import android.net.Uri;import android.os.Bundle;import android.app.Activity;im
2014-06-07 18:28:21 1299
原创 Java 多态缺陷
Java 多态缺陷 (1.缺陷 : “覆盖”私有方法output: print Aprivate方法被自动认为是final方法,而且对子类是屏蔽的。因此,在这种情况下,子类B中的print方法是一个全新的方法;既然基类中的print()方法在子类中不可见,因此甚至不能被重载。结论就是:只有非private方法才可以被覆盖; 可是如上面代码所示,发
2014-06-04 10:42:49 1023
原创 Java对象实例化--成员实例化顺序
public class InitTest2 extends InitTest1 { { System.out.print("1"); } public InitTest2() { System.out.print("2"); } static{
2014-06-03 20:03:52 692
转载 HTMLParser使用详解(5)- 扩展 HTMLParser 对自定义标签的处理能力
HTMLParser使用详解(5)- 扩展 HTMLParser 对自定义标签的处理能力HTMLParser 是一个用来解析 HTML 文档的开放源码项目,它具有小巧、快速、使用简单的特点以及拥有强大的功能。如果是 HTML 文档,那么用 HTMLParser 已经差不多可以满足你至少 90% 的需求。一个 HTML文档中可能出现的标签差不多在 HTMLParser 中都有对应的类
2014-05-29 13:22:14 729
转载 HTMLParser使用详解(4) - 通过Visitor访问内容
HTMLParser使用详解(4) - 通过Visitor访问内容 HTMLParser遍历了网页的内容以后,以树(森林)结构保存了结果。HTMLParser访问结果内容的方法有两种。使用Filter和使用Visitor。下面介绍使用Visitor访问内容的方法。 4.1 NodeVisitor从简单方面的理解,Filter是根据某种条件过滤取出需要的Node再进行处理。Visitor则是遍历内容
2014-05-29 13:16:04 646
转载 HTMLParser使用详解(3)- 通过Filter访问内容
HTMLParser使用详解(3)- 通过Filter访问内容HTMLParser遍历了网页的内容以后,以树(森林)结构保存了结果。HTMLParser访问结果内容的方法有两种。使用Filter和使用Visitor。(一)Filter类顾名思义,Filter就是对于结果进行过滤,取得需要的内容。HTMLParser在org.htmlparser.filters包之内一共定义了1
2014-05-29 13:13:30 587
转载 HTMLParser使用详解(2)- Node内容
HTMLParser使用详解(2)- Node内容 HTMLParser将解析过的信息留存为一个树的结构。Node是信息留存的数据类型基础。请看Node的界说:public interface Node extends Cloneable;Node中包括的要领有几类: 1、对付树型结构进行遍历的函数,这些函数最轻易理解:Node g
2014-05-29 13:11:49 890
转载 HTMLParser使用详解(1)- 初始化Parser
HTMLParser使用详解(1)- 初始化Parser在研究搜索引擎的开发中,对于HTML网页的处理是核心的一个环节。网上有很多开源的代码,对于Java来说,HTMLParser是比较著名并且得到广泛应用的一个。HTMLParser的主页是http://htmlparser.sourceforge.net/,最后的更新是2006年9月的1.6版。不过没关系,HTML的内容已经很久没有
2014-05-29 12:09:03 776
原创 Android app内 语言切换
功能:app用户根据自己的语言喜好,设置app语言。语言设置只针对本app,并在下次启动应用时保留前一次启动设置。更新语言:public static void changeAppLanguage(Resources resources, String lanAtr) { Configuration config = re
2014-05-27 17:49:15 1361
转载 Java 基础类型转换byte数组, byte数组转换基础类型
package common.util;/** * 对数字和字节进行转换。 * 基础知识: * 假设数据存储是以大端模式存储的: * byte: 字节类型 占8位二进制 00000000 * char: 字符类型 占2个字节 16位二进制 byte[0] byte[1] * int : 整数类型 占4个字节 32位二进制 byte[0] byte[1] byte[2] byte[3
2014-05-15 19:17:15 526
转载 android中的onMeasure
今天学习android自定义组件:docs/guide/topics/ui/custom-components.html其中有两个对布局界面影响很的方法,onDraw(),和onMeasure().onDraw()比较好理解.onMeasure()就比较难理解一些,也更复杂些 ,引用文档中的说法就是:onMeasure() is a little more involved.其实还
2014-04-08 17:25:53 460
转载 关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi
关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi首先是几个基本概念:1.屏幕尺寸Screen size即显示屏幕的实际大小,按照屏幕的对角线进行测量。为简单起见,Android把所有的屏幕大小分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extr
2014-04-08 10:03:45 666
原创 LinearLayout的Divider属性
LinearLayout的Divider属性<LinearLayout android:id="@+id/buttonPanel" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="@dimen/alert_dia
2013-12-28 17:20:03 1267
原创 tabWidget的divider属性
次奥,看到那个红色的圈圈里面的间隙么,特么搞了两天,布局改来改去,又是宽高,图片属性,间距,的改,总是消不掉。后来上网搜了下,可以再tabWidget里面设置background,虽然看不见了,但是还是存在的啊,细眼看,还是有点啊。最后特么才知道 tabWidget有一个divider 属性,再一跟踪style.xml和Theme.xml,
2013-12-28 17:15:24 2147
原创 监听发送短信(Service中注册ContentObserver)
public class SmsObserveService extends Service { private static String TAG = "ffffff"; static final String[] SMS_LOG_PROJECTION = new String[]{Sms._ID, // 0 Sms.TYPE, // 1
2013-12-28 17:01:04 1083
短信4.4相关AppOpsManager和SmsReceiver-action变化调研
2014-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人