安卓系统层
文章平均质量分 91
byszy
专研Android,java,略懂经济、文学、钢琴。爱拼搏,爱生活,爱上海
展开
-
Android系统启动过程详解
前言一直想研究Android完整的启动过程,网上看了不少资料,也看了书上的一些说明,对这些观点有些怀疑,于是自己分析了系统启动的完整过程。从内核启动第一个用户程序init开始说起,直到Home应用的启动,每一步都有源代码展示。希望能解除读者对Android系统启动过程中的困惑,若有什么疑问,欢迎留言交流。本研究基于CM10.1源码,读者若能对照源代码查看效果会更好。1) init启转载 2014-08-14 12:19:13 · 1395 阅读 · 1 评论 -
Android studio开发NDK
关于ndk的一些介绍与用途,简单做下介绍:Android NDK是什么NDK是一系列工具的集合。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地原创 2015-12-25 18:46:53 · 729 阅读 · 0 评论 -
几道很有趣的面试题
2、String、StringBuffer与StringBuilder的区别java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。a.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。原创 2015-12-16 22:25:40 · 1924 阅读 · 1 评论 -
sqlite优化之多表查询
今天在优化公司项目中,发现一个列表在离线加载时速度非常慢,加载1000条数据,竟然需要13s!!!跟了一下db层代码@Override public ArrayList<Task> loadMineTask(String userId, boolean noblongs) { .....//省略 Cursor cursor = db.rawQuery(sql,原创 2015-12-31 18:01:31 · 10471 阅读 · 0 评论 -
一个简单、漂亮、功能强大的Android日志程序:logger
阅读目录Gradle当前的Log 系统Logger用法Change TAGSettings (optional)More log samples Logger.d("hello"); Logger.e(exception); Logger.json(JSON_CONTENT);Method infoandroid是一个简单、漂亮、功能强大的Android日志程序转载 2015-09-24 16:01:25 · 2792 阅读 · 0 评论 -
Android Fragment学习
android Fragments详解原创 2015-07-01 10:39:26 · 679 阅读 · 0 评论 -
Linux 使用技巧(持续更新)
1、grep搜索命令,减少部分搜索路径以提高搜索速率在根目录下.bashrc文件的最后面加上这么一句话export GREP_OPTIONS="--exclude=*.log --exclude=cscope.* --exclude=tags --exclude=*~ --exclude=*.tmp --exclude-dir=*.git --exclude-dir=out --exc原创 2015-05-05 21:21:34 · 617 阅读 · 0 评论 -
android主题机制(一)
android的主题是一个很大的话题,个人在工作中原创 2014-06-28 13:10:51 · 1586 阅读 · 3 评论 -
如何修改号码显示格式?比如将number修改为4-4-3分段格式
[DESCRIPTION] 示例如何将现有号码显示格式,修改为某一种固定格式(比如4-4-3)。比如:国内号码是 3-4-4 格式,如 150 XXXX XXXX,怎么修改为 4-4-3 格式,如 150X XXXX XXX。 [SOLUTION] [修改方法]Step1.Phonemetadata.java 第54行左右的 getPattern()转载 2015-02-10 11:18:58 · 961 阅读 · 0 评论 -
安卓锁屏音乐控件开发
首先我个人先吐槽一下,这是一个吃力不讨好的活。为什么?因为现在安卓手机的各种定制rom五花八门,各种各样,miui、乐蛙、emui、努比亚。。。我们今天要做的事情就是要在各种系统的锁屏界面,出现一个音乐控件,用来做一些简单的音乐播放的控制。做之前,习惯性的看了各大家的做法:酷我、多米等,这些家的做法的思路都一样,都是在自己的应用中监听power锁屏事件,然后加一个“假锁屏”,即每次锁屏再打原创 2015-01-08 16:22:15 · 3453 阅读 · 1 评论 -
Android 物理按键菜单实现流程
写在前面,转载者注: 该文章主要分析了phonewindow中对expanded Menu处理的流程,介绍的较为详细,可供参考。代码是基于4.1的,同样适用于4.4。1. PhoneWindow.onKeyDown() 1. onKeyDownPanel. 当Menu键按下去之后,会产生一个KeyEvent,是key转载 2014-12-03 14:35:07 · 3304 阅读 · 0 评论 -
状态栏显示相关View Flag参数介绍
View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性。setSystemUiVisibility(int visibility)方法可传入的实参为:1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复转载 2014-10-22 18:29:45 · 3165 阅读 · 0 评论 -
内存泄露分析手段
1.内存溢出后的Log是比较随机的报错,直接通过Log找错不可靠。2.通过ddms 查看音乐进程内存情况,反复操作,找到复现的可能(类似黑盒测试,当然会有一些更专业的工具如MAT帮助)3.找到复现路径,即点击进入播放界面很容易内存泄露,无法释放。4.音乐更改的UI比较大,替换的图片也比较多,之前有些背景图片可能达到几百KB(后面图片已经优化),首先怀疑是否是图片的处理不当,导致内存泄露原创 2014-06-25 09:38:24 · 832 阅读 · 0 评论 -
多方法批量删除Android中无用的资源(更新Android Studio2.1工具)
一个app开发久了,项目中难免会有越来越多没有被调用到却没有被及时删除的资源文件, 尤其是体积较大的图片文件,于是我们会发现我们的app包越来越大,越来越臃肿。于是,定期的检测我们工程中哪些资源已经被废弃,是十分必要的。要做这么一个工作,分为两步,一步是查找到这些无用的资源,另一步是批量删掉他们!网上类似的工具有一些,其中“列出”这一步骤我整理了两种方案1、使用 AndroidUnusedResou原创 2016-01-15 17:04:24 · 12945 阅读 · 0 评论