
移动 开发
护士leo
每天进步一点点,积累点滴,成就最好的自己。
展开
-
android源码修改问题解答之二(多媒体)
case1:如何避免context相关的内存泄露避免context相关的内存泄露,记住以下几点:1. 不要让生命周期长的对象引用activity context,即保证引用activity的对象要与activity本身生命周期是一样的2. 对于生命周期长的对象,可以使用application context3. 避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对原创 2015-01-28 16:42:30 · 1256 阅读 · 0 评论 -
Android FM模块学习之四源码分析(七)
接上一篇,现在分析android\vendor\qcom\opensource\fm\fmapp2\src\com\caf\fmradio\StationListActivity.javaprotectedvoid onCreate(Bundle savedInstanceState)方法里绑定FMRadioService服务bindService((newIntent()).se原创 2015-01-04 16:52:52 · 1883 阅读 · 1 评论 -
Android FM模块学习之四源码分析(八)
接上一篇,今天将要来看看android\vendor\qcom\opensource\fm\fmapp2\src\com\caf\fmradio \PresetStation.java调整频率位置状态构造方法public PresetStation(String name, int frequency) { mName = name; /*原创 2015-01-05 15:32:24 · 2022 阅读 · 0 评论 -
AndroidFM模块学习之四源码分析(九)
接上一篇,接下来我们看看android\vendor\qcom\opensource\fm\fmapp2\src\com\caf\fmradio\PresetList.java定义一个List列表ListmPresetList = new ArrayList();同步电台数量public synchronized int getStationCount(){原创 2015-01-05 16:00:30 · 1976 阅读 · 0 评论 -
Android源码问题解答之三(状态栏和锁屏)
case1:如何调整状态栏中通知栏里图标的间隔状态栏中通知栏的图标大多不是方方正正的矩形或者正方形,但是一旦两个或者两个以上的方正的图标相邻时,没有间隙,会有视觉上的局促感。可以通过给图标增加间隙的方法,来使其更加美观。修改如下:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/原创 2015-01-30 15:28:43 · 3249 阅读 · 0 评论 -
android源码问题解答之一(输入法)
本文将采取问答形式展开,收集的一些平时修改android平台源码遇到的问题。基于展讯平台,别的平台也基本上类似修改即可。case 1:android:imeOptions有什么作用?曾经出现一个问题:固定拨号横屏下保存输入PIN2码后完成功能失效。经检查发现编辑框的android:imeOptions="actionDone"属性没有设置。在android2.3.5上修改Phone/r原创 2015-01-28 11:45:25 · 2303 阅读 · 0 评论 -
android 源码问题解答(异常处理)
case1:如何做到按back键不退出应用后台继续运行?在基类activity会调用onBackPressed这个方法,这个方法会finish当前这个activity,使得当前activity走到onDestory,如果想要按back键不走到onDestory,需要复写onBackPressed方法 @Overridepublic void onBackPress原创 2015-02-13 15:00:43 · 2335 阅读 · 0 评论 -
Android核心问题之AMS常见问题分析
AMS中常见问题有以下几种: 1. 低内存问题 2. 性能问题 3. Activity跳转问题 4. 广播接收慢问题低内存问题: 1. 查看kernel.log中关键字sendsigkill / lowmemorykiller 2. 在上述搜索结果中通过应用进程名进行搜索查看,注意kernel.log中进程名打印为截取后面15位性能问题:原创 2015-02-27 17:42:02 · 3066 阅读 · 0 评论 -
android 内存相关
case1:如何查看 Native 内存?使用Debug的getNativeHeapSize (),getNativeHeapAllocatedSize (),getNativeHeapFreeSize ()方法。该方式只能得到Native堆的内存大概情况,数据单位为字节。static long getNativeHeapAllocatedSize()Returns the a原创 2015-02-13 14:52:13 · 1277 阅读 · 0 评论 -
Android核心分析之AMS
ActivityManagerService 简称AMS,是Android内核的核心功能之一,在系统启动SystemServer时启动此服务。android 框架:Activity Manager的组成主要分为以下几个部分: 1.服务代理:由ActivityManagerProxy实现,用于与Server端提供的系统服务进行进程间通信 2.服务中枢:ActivityM原创 2015-02-27 16:44:01 · 24109 阅读 · 2 评论 -
Android FM模块学习之源码分析(六)
现在是2015年1月啦,得改口说去年了,去年抽时间整理了一些FM模块的主要源码类的东西,今年再整理一下几个次要的类的源码。这样来看FM上层的东西不是太多。请看android\vendor\qcom\opensource\fm\fmapp2\src\com\caf\fmradio\Settings.javaprotected void onCreate(BundlesavedInstan原创 2015-01-04 16:37:04 · 2235 阅读 · 0 评论 -
android handler looper message区别
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。MessageQueue:消息队列,用来存放Handler发送过原创 2015-02-06 14:46:51 · 1092 阅读 · 1 评论 -
AndroidFM模块学习之四源码分析(十)
接上一篇,今天我们来看看android\vendor\qcom\opensource\fm\qcom\fmradio\FmRxControls.java/ **打开FM Rx / Tx。* Rx = 1和Tx = 2* /public void fmOn(int fd, int device) { int re; FmReceiverJNI.原创 2015-01-29 10:34:33 · 1966 阅读 · 0 评论 -
AndroidFM模块学习之五关闭FM流程
前一阵子简单描述了一些关于FM开启、录音和搜索的流程,浅析了一下各个类的源码,接下来就是关闭FM了,FM模块的学习就告一段落了,希望这阵子的整理能对大家在FM的了解上有一定帮助,如果大家在修改FM模块的上层代码时遇到了问题或BUG,可以留言,我们共同来处理。 FM关闭有两种方式,一种是拔出耳机,FM关闭,另一种是按关闭按钮。 请看第一种方式:流程图:原创 2015-01-29 15:11:11 · 2252 阅读 · 2 评论 -
Android 音乐乱码问题修改
对于Android音乐播放器的音乐人 ,专辑,音乐名字显示乱码的修改做了下总结:方法一:在frameworks\base\media\java\android\media\MediaScanner.java中修改:函数handleStringTag在这个函数中加上字符编码的转换;/*add by tanfusheng @20150110 start */ private原创 2015-01-10 16:38:51 · 3579 阅读 · 0 评论 -
Android开启应用时自动创建快捷方式
今天在使用360手机助手时,发现它会自动创建一个快捷启动方式,感觉挺有意思的,所以就上网百度了一些方法,试了一下,有一种方法是挺不错的,我借鉴来用用,先保存下来,我也写了一个测试小程序。 首先,在你要启动应用的mainActivity里添加代码,在onCreate()方法里,加一个方法createShortCut();然后就是方法的实现:private void createSho原创 2014-12-22 14:10:04 · 2393 阅读 · 0 评论 -
Android FM模块学习之四源码解析(三)
由于最近一直忙项目,没有时间来更新文档,今天抽空来写一点,希望大家可以学习使用! 这一章当然还是来分析FM模块的源码。FmReceiver.javapublicFmReceiver(String devicePath,FmRxEvCallbacksAdaptor callback) throwsInstantiationException { mControl =原创 2014-12-22 15:14:23 · 2072 阅读 · 0 评论 -
Android FM模块学习之四源码解析(四)
我今天想分享的是FM模块的保存方法,即FmSharedPreferences.javaFmSharedPreferences(Context context)在构造方法中加载Load()方法,public void Load(){ Log.d(LOGTAG, "Load preferences "); if(mContext == null)原创 2014-12-22 15:58:16 · 1395 阅读 · 0 评论 -
Android ActionBar 更改返回图标
今天在修改客户所提BUG时,遇到了有些界面需要修改ActionBar的返回图标,上网查了下,有两种方式可以修改:1.在java代码中修改: actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.set原创 2015-01-10 15:47:54 · 9673 阅读 · 0 评论 -
学习点滴(四)
case1:如何让ActionBar中的返回键返回到指定activity在ActionBar中setDisplayHomeAsUpEnabled(boolean enalbe) 方法,将其设置为true, 给ActionBar左上角图标的左边加上一个返回的图标 。对应ActionBar.DISPLAY_HOME_AS_UP。同时在AndroidManifest.xml中对应的activ原创 2014-11-17 15:08:51 · 1142 阅读 · 0 评论 -
Android FM模块学习之四源码分析(五)
前几章我们分析了FM模块的几个主要的类文件,今天要分析的是:FMTransceiver.java public class FmTransceiver{ /* Primary FM States : * FM will be in one of the 4 states at any point of time * '0' - FMState_Turned_原创 2014-12-26 14:20:49 · 1995 阅读 · 0 评论 -
android修改默认输入法
今天无意间看到公司小贺写了一篇挺不错的文章,拿来学习一下。相信好多朋友都改过默认输入法,我也改过,只不过有一点没注意到,就是切换语言后,默认输入法会不会变的问题。今天看到了这一点,觉得可以拿过来让大家也学学。【声明】本文档均是以marvell项目代码为例,别的平台也可以类似修改修改\frameworks\base\packages\SettingsProvider\res\va原创 2014-11-01 14:27:16 · 6944 阅读 · 0 评论 -
android launcher 日历图标显示日期
看到iphone上的日历图标上的数字会随着日期的变化而变化,最近在android平台上也研究了 一下,实现方法如下:直接上源码在launcher里改的首先,在IconCache.java文件中,找到方法private CacheEntry cacheLocked(ComponentName componentName, ResolveInfo info, Ha原创 2014-06-04 16:07:31 · 6136 阅读 · 14 评论 -
android 新增分区以及挂载方法
好长时间没更新我的优快云 了,今天抽时间来重新一下,了解一点android新增分区和挂载的东西。我是以高通平台代码为例来写的。闲话不多说,直接上方法:以新增kaicom分区举例:1.在partition.xml新增一个分区,分区名字为kaicom,分区block大小为262144,新生成GUID,权限为可读可写,使用kaicom.img类型来格式化,检查kaicom.原创 2017-06-28 11:20:28 · 19350 阅读 · 10 评论 -
android 前摄镜像的源码修改
最近遇到一个客户需求,要求在前摄的时候,不要求镜像预览,拍出来的照片也不要求镜像。科谱一下,前摄镜像的原因是让镜头对着自己,当镜子使用,是专门这么设计的。既然客户有要求,那就得修改了。通过各种渠道找,之前想通过驱动层修改代码, 但是驱动同事告诉我,预览可以修改,拍出来的照片修改不了。拍出来 的照片只能是在应用层修改,那就只能在AP侧找源码。此代码是基于高通的基础之上的,andr原创 2017-07-17 11:40:18 · 4406 阅读 · 2 评论 -
linux服务器编译命令
今天记录一下,我们在使用linux服务器的一点常见命令:纯属个人后续使用方便而记录,高手见到了别见笑哈。查看服务器别人在编译的命令:ps -aux | grep make 查找当前路径的makefile文件并重命名为makefile.bakfind ./ -name "*makefile" | xargs rename 's/makefile原创 2017-09-27 16:49:59 · 1964 阅读 · 0 评论 -
AndroidFM模块学习之四源码解析(十一)
接上一篇,接下来看看android\vendor\qcom\opensource\fm\fmapp2\src\com\caf\fmradio\FmTags.java当点击FMRadio.java菜单的全部频道选项,跳转到FmTags.java类定义了一个ListView控件和一个简单适配器private ListView la;private ArrayAdapter<String> ...原创 2018-03-09 18:10:04 · 457 阅读 · 0 评论 -
使用 adb logcat 显示 Android 日志
本文为转载。 地址:http://blog.youkuaiyun.com/ouyang_peng/article/details/47608583 eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志;1. 解析 adb logcat 的帮助信息在命令行中输入 adb logcat --help 命令, 就可以显示该命令的帮助信息;[plain] view pl...转载 2018-03-19 11:26:52 · 1470 阅读 · 0 评论 -
Android串口操作,简化android-serialport-api的demo
感谢分享:http://lpcjrflsa.iteye.com/blog/2097280最近在做android串口的开发,找到一个开源的串口类android-serialport-api。其主页在这里http://code.google.com/p/android-serialport-api/ ,这里可以下到APK及对源码。 但是下载源码之后发现源码不能直接使用,而且源码结构较为复杂。关...转载 2018-03-28 17:00:22 · 1490 阅读 · 2 评论 -
使用ADB更改系统设置中的参数 如背光亮度、休眠时间等
感谢https://blog.youkuaiyun.com/jimbo_lee/article/details/52168189 分享Android4.2以后的源码android-17\com\android\commands目录下较之前的版本多了一个settings命令,查看其中的SettingsCmd.java文件,末尾有命令的帮助信息:private static void printUsage() {...转载 2018-04-04 11:00:06 · 3399 阅读 · 0 评论 -
高通 MSM8K bootloader : SBL1
感谢 http://blog.chinaunix.net/uid-9185047-id-5001947.html 分享一、 MSM8K Boot Flow 图1: 高通MSM8K平台bootloader启动流程基本类似,但具体各平台,比如MSM8974、MSM8916、MSM8994等,会有微小区别。从上图,可以看出高通8K平台的boot...转载 2018-04-05 16:26:13 · 1750 阅读 · 0 评论 -
android8.0特许权限白名单
特许权限白名单 特权应用是位于系统映像 /system/priv-app 目录下的系统应用。过去,设备实现人员几乎无法控制可以向特权应用授予哪些签名|特许权限。从 Android 8.0 开始,实现人员可以将特权应用显式加入到 /etc/permissions 目录下的系统配置 XML 文件的白名单中。未在这些 XML 文件中明确列出的应用不会被授予特许权限。 添加白名单应用的权限白名单可列在位于...原创 2018-07-11 13:45:51 · 13716 阅读 · 0 评论 -
android5.1 Recovery添加从U盘升级功能
之前看到过一个人写了4.4上添加U盘升级功能的博客http://blog.youkuaiyun.com/kris_fei/article/details/50311885,写得挺好。我们在5.1上也要做同样的功能,具体修改如下:diff --git a/bootable/recovery/Android.mk b/bootable/recovery/Android.mkold mode 10064原创 2017-06-28 11:33:41 · 4631 阅读 · 2 评论 -
android 开机完成后打开某应用的修改
当android 开机完成后,需要打开具体的某一个应用,在源码中的修改:frameworks\base\services\core\java\com\android\server\am\ActivityManagerService.java 中找到setDefaultLauncher 函数;private void setDefaultLauncher() { IP原创 2017-07-12 11:07:01 · 1133 阅读 · 0 评论 -
android5.1判断外置SD卡是否存在
最近发现以前网上搜索的判断外置SD是否存在的方法在android5.1上不能使用了,上网和看源码找到了一个方法可以判断SD卡是否存在。private boolean isExternalStorageMounted() { final StorageVolume[] volumes = mStorageManager.getVolumeList(); for (Storag原创 2015-09-22 18:55:47 · 5462 阅读 · 1 评论 -
android mediaplayer 音效 代码
package com.example.mediaplayertest;import java.util.ArrayList;import java.util.List;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Context;import an原创 2016-03-01 14:36:01 · 1893 阅读 · 0 评论 -
java.lang.SecurityException: Binder invocation to an incorrect interface报错问题
今天在了解AIDL时遇到了如下问题:aidl客户端写好后,调试运行时,报错:java.lang.SecurityException: Binder invocation to an incorrect interface这是因为我在写aidl客户端代码时,直接将服务端的aidl文件copy过来,放在客户端的包下,把aidl包名改了,然后再运行,发现会报错。上网一查,才明白原因:客户端的ai原创 2016-02-19 16:09:42 · 15904 阅读 · 1 评论 -
高通平台进FFBM的三种模式
最近用到了高通平台的FFBM模式,我想给大家分享下进FFBM测试模式的三种方法:1.用QFIL工具下载,只要下载的时候选择rawprogram_for_FFBM 就可以;然后开机就可以进到FFBM测试模式;2.在正常开机后,用fastboot 烧录misc.img到misc分区3使用工具QRCT来修改,截图暂时还没弄好,下次再更新。原创 2016-05-25 17:27:22 · 20702 阅读 · 0 评论 -
Android 5.1.1 源码目录结构
最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触android,也是一头雾水,啥都不懂,就是靠看文档和视频,对android有一个初步了解,然后就通过查看源码,才有更深入的了解。android有成千上万,说太少了,是成百万上亿的代码,当然要全部都了解是不可能的,所以要有一套自己的方法来理解和查看代码。学习android,对代码框架结构的了解是必不可少的,原创 2016-07-12 15:40:51 · 47921 阅读 · 9 评论 -
TextView 你真的懂我么
对于TextView,我想大家都已经熟的不能再熟了。但是它的用法我们真的熟么?为了避免总是一言不合就去翻官方文档,在这里我总结一下我也可能是你容易忽视的一些细节.此文从别的博客转过来的,方便后续自己查阅。TextView设置基础字符串资源里变量替换Android开发中是拒绝硬编码的,我们可能会把一些字符串放在xml中当作资源使用,假设有如下情况:你好A,欢迎使用我们的App转载 2016-07-27 10:17:43 · 2001 阅读 · 0 评论