自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (4)
  • 收藏
  • 关注

原创 监听wifi使用总时长和开机电量 禁止使用wifi热点

在Launcher.java中  oncreate()中注册一个监听开机完成广播/*获取电池电量信息 20180523 begin*/        registerReceiver(mBootCompleted, new IntentFilter(           "android.intent.action.BOOT_COMPLETED"));         /*获取电池电量信息 2...

2018-05-25 10:05:01 341

转载 Android 带listview的桌面小部件制作

转载于https://blog.csdn.net/sk719887916/article/details/47027263不少开发项目中都会有widget功能,别小瞧了它,他也是android的七大组件之一,对widget陌生的朋友可以阅读下我的上篇文章< Android Widget工作原理详解(一)>关于内部的介绍,还没掌握的同学不要担心,开发AppWidget套路很简单,今天我们...

2018-05-04 10:20:51 1267

原创 Android 面试之查漏补缺——---Bindler的理解

概述:Binder是Android系统提供的一种IPC(进程间通信)机制。除了Binder外,android系统还存在其他的IPC通道,例如管道和socket等。Binder相对于其他IPC机制来说,更加灵活和方便。Binder通信是基于C/S架构。在Android中的...

2021-03-12 11:02:30 529 1

原创 Android 面试之查漏补缺 Handler

Handler的作用:当我们需要在子线程处理耗时的操作(例如访问网络,数据库的操作),而当耗时的操作完成后,需要更新UI,这就需要使用Handler来处理,因为子线程不能做更新UI的操作。Handler能帮我们很容易的把任务(在子线程处理)切换回它所在的线程。简单理解,Handler就是解决线程和线程之间的通信的。Handler的源码分析:首先来看一下工作图Handler的消息处理主要有五个部分组成,Message,Handler,Message Queue,Looper和ThreadLo

2021-03-04 18:02:12 134 1

原创 Android面试之查漏补缺之Context

、什么是context?这个在我们开发中最熟悉而又陌生的朋友到底是什么呢?可能大家会不约而同的说,是场景,是上下文,但是到底有多少人理解这个原理呢?我简单概括一下,应该有以下几点:①、它描述的是一个应用程序环境的信息,即上下文。②、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类。③、通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent信息等。说了这三点好像你还有点模糊,那我..

2021-03-04 15:46:38 150 1

原创 Android 操作系统的内存回收机制之默认内存回收、OOM以及lowmemorykiller

Android 操作系统中的内存回收可分为两个层次,即默认内存回收与内核级内存回收,本章重点对默认内存回收机制进行研究,Linux 内核层次的内存回收机制将在下一张介绍。 本章所有代码可参见 ActivityManagerService.java。Android 之所以采用特殊的资源管理机制,原因在于其设计之初就是面向移动终端,所有可用的内存仅限于系统 RAM,必须针对这种限制设计相应的优化方案。当 Android 应用程序退出时,并不清理其所占用的内存,Linux 内核进程也相应的继续存在,所谓”退出

2021-03-03 16:43:56 273 1

原创 Android面试查漏补缺 Android Framework添加系统服务

添加系统服务需要添加aidl,service,manager文件,需要修改SystemServer,Context,ContextImpl下面举例进行说明,主要添加一个服务,用于获取系统时间和版本号1.在frameworks/base/core/java/android/app/下添加aidl文件frameworks/base/core/java/android/app/ISystemStatusManager.aidlpackage android.app; interface ISys

2021-03-03 14:53:51 145 1

原创 android Framework 自定义按键处理

一、驱动层按键值的增加和修改不涉及,只涉及Framework层按键的修改1.、kitkat-mstar-master/frameworks/base/api/current.txt--- a/kitkat-mstar-master/frameworks/base/api/current.txt+++ b/kitkat-mstar-master/frameworks/base/api/current.txt@@ -27443,12 +27443,15 @@ package android.vie

2021-03-03 14:37:27 254

原创 应用启动过程

应用启动流程应用启动流程· 1.点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求· 2. system_server进程接收到请求后,向zygote进程发送创建进程的请求·3. Zygote进程fork出新的子进程,即App进程· 4.App进程,通过Binder IPC向sytem_server进程发起attachApplication请求· 5. system_server进程在收到请...

2021-03-03 11:44:28 236

原创 Android 8.1 设置settings中添加一个一级菜单item,并屏蔽点击事件,summary可以动态更改

一、在设置的清单文件AndroidManifest.xml 添加入口 <!--添加用户item 20210207 --><!--android:priority="9"加这个属性与位置顺序有关 值越大在分组中越靠前--> <activity android:name="Settings$LoginUserSettingsActivity" android:label="@string/login_user"

2021-02-08 11:40:04 788

转载 添加资源到framework层

编译带有资源的jar包,需要更改frameworks层,方法如下:一.增加png类型的图片资源1.将appupdate模块所有用到的png格式图片拷贝到framework/base/core/res/res/drawable-mdpi里。但是要确保没有与原生的没有重名文件。2.在framework/base/core/res/res/values/public.xml文件里增加对这些图片的声明。(例: <public type="drawable"name="upg_btn_de...

2021-01-28 10:53:37 158

原创 android 防止应用被lowmemorykiller杀掉

网上关于lowmemorykiller的文章一大把,总结一下,系统会不断更新进程的adj值,然后在内存紧张的情况下,adj越大的应用越可能被杀,那么我们要防止被杀,要么是给我们的应用设置比较小的adj值,要么是要杀的时候过滤我们的应用,因为杀进程是比较偏底层做的,不太熟悉.所以优先考虑,系统计算adj值的时候直接给我们的应用adj值赋为-1.  直接说方法,系统计算过adj之后会通过下属方法写...

2019-10-17 09:44:56 479

转载 android源码framework下添加新资源的方法

转载自:https://www.cnblogs.com/zl1991/p/5241891.html编译带有资源的jar包,需要更改frameworks层,方法如下:  一.增加png类型的图片资源  1.将appupdate模块所有用到的png格式图片拷贝到framework/base/core/res/res/drawable-mdpi里。但是要确...

2019-06-21 10:55:32 300

原创 android 8.1 下拉栏Systemui的修改

1.下拉开关的创建(哪些显示哪些不显示):在vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java中进行开关的创建;不显示直接屏蔽就好 public QSTile createTile(String tileSpec) { ...

2019-06-20 18:03:17 1505

原创 android 8.1 添加多用户后,除机主外其他用户无法连接排除后访问磁盘

在vendor/mediatek/proprietary/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java的volumeMountedLocked(String path)中添加多用户判断:private void volumeMountedLocked(String path)...

2019-06-20 17:31:44 365

原创 Android 8.1 修改默认输入法

以实现讯飞输入法为默认输入法为例:首先是要先将讯飞输入法预装进系统:1.在vendor/hnzf新建iflyIME文件夹,并将下载好的apk放入文件夹并重命名为iflyIME.apk2.新建一个Android.mk具体详见LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := iflyIMEL...

2019-06-20 17:28:19 1981

原创 Android 5.1 Camera 架构学习之Camera初始化

Android Camera 采用C/S架构,client 与server两个独立的线程之间(CameraService)使用Binder通信。一 CameraService的注册。1.手机开机后,会走init.rc流程,init.rc会启动MediaServer Service。service media /system/bin/mediaserver class main...

2019-04-26 10:40:02 557

原创 Android 8.0 (Oreo) 添加按键及键值【物理按键】

步骤1.framework层添加前,要确定按键驱动是否调好: adb shell getevent 后按下按键/dev/input/event3: 0001 02fe 00000001/dev/input/event3: 0000 0000 00000000/dev/input/event3: 0001 02fe 00000000/dev/input/even...

2019-04-02 11:09:34 1012

原创 在framework层上报按键事件

本文主要实现的功能是在android系统中添加一个按键,framework层继续上报按键事件将键值在framework层上报。代码的改动如下: 1 diff --git a/device/rockchip/common/device.mk b/device/rockchip/common/device.mk 2 index d80f644..dc5c454 100755 3 --...

2018-08-07 17:18:03 643

转载 Android源码下各种Android.mk的编写

转载自https://blog.csdn.net/tkwxty/article/details/43341217    快过年了公司不景气,也么有很多的事情要忙。正好趁着有时间,总结一下在Android源码下各种模块Android.mk的编写!关于Android.mk详细的语法描述和细节我这里就不做过多的描述了,因为网上关于这方面的知识有很多,我这里列举出来的是几个经常用到的模块编写实例。希望...

2018-08-07 16:22:38 633

转载 Android-Android5.1屏幕固定功能(screen pinning)分析

转载自 https://blog.csdn.net/u013656135/article/details/49741659 一、设置中开启屏幕固定:      此功能在设置-安全中开启,不清楚以往的版本中是否支持就有已经有了此功能,但是Android4.4设置中到时没有发现此项。在Android 5.0发现了此项设置。刚一看到此项设置,就心想:“这是什么鬼!”。设置中的代码在Securit...

2018-08-07 15:51:57 1725

原创 Android-Android5.1屏幕固定功能上层应用的实现

import android.app.ActivityManagerNative;    public void startLockTask() {//固定屏幕        if(!isInLockTaskMode()) {            try {                ActivityManagerNative.getDefault().startLockTaskMo...

2018-08-07 15:49:18 1403

原创 android5.1 长按home键一键清理白名单 隐藏单个task的删除键

步骤一 :目录 frameworksI\baseI\packagesI\SystemUI\src\com\android\systemui\recents\views\TaskStackViewCallbacks.java                   设置白名单状态标志  public TaskStackView(Context context, TaskStack stack) ...

2018-08-06 11:07:28 509

原创 android5.1 长按home键一键清理白名单 滑动添加白名单

方法一:弊端:滑动时名单消失没有真正删除;再次长按home键 依然显示在待清理task中目录 frameworksI\baseI\packagesI\SystemUI\src\com\android\systemui\recents\views\RecentsView.java  onTaskViewDismissed() @Override     public void onTask...

2018-08-06 11:00:02 672

原创 android通过USB的MTP模式下,禁止用户在根目录有任何操作(重命名 删除 显示特定文件夹)(用户可以定制)

均在在frameworks/base/media/java/android/mtp/中找到MtpDatabase.java文件中完成Settings.System.putString(getApplicationContext().getContentResolver(), "filename","'DCIM','Android','Music','Movies'");//在计算机要显示的文件...

2018-07-27 10:20:40 1042

原创 android通过USB的MTP模式下,禁止用户在根目录添加文件

禁止添加文件夹:找到frameworks/av/media/mtp中的MtpServer.cpp源文件修改函数MtpResponseCode MtpServer::doSendObjectInfo()如下图MtpResponseCode MtpServer::doSendObjectInfo() {     MtpString path;     uint16_t temp16;...

2018-07-27 10:04:59 747

原创 Android5.1源码改变USB连接方式

目录文件:device\mediatek\common\device.mk关键字:persist.sys.usb.config把mass_storage改成charging:就可以实现默认选择充电模式# default usb function  usb连接计算机默认为充电ifeq ($(strip $(MTK_MASS_STORAGE)),yes)  #ADDITIONAL_DE...

2018-07-27 10:00:29 734

原创 Android中判断网络连接是否可用及监控网络状态

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。 &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt; 1)判断是否有网络连接 1 public boolean isNetworkConnected(Context context) { 2 if (cont...

2018-06-27 16:43:54 442

转载 android系统同时使用wifi和4g上网

版本信息: android5.1.1 Linux version 3.10.49需求:通过4g访问外网,同时通过wifi访问内网。  android系统默认情况下,wifi连网时,4g数据链接会被强制断开,但实际有需要wifi和4g同时上网,为了满足这个要求,需要修改android的网络管理机制。  首先实现wifi连网时,不让4g数据链接被强制断开:  修改  frameworks/base/s...

2018-06-20 14:00:08 12965 7

转载 Android性能优化来龙去脉总结

                            WeTest 导读一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样才能更好地提高用户体验。以下是本人在工作中对经历过的性能优化的一些总结,依据故事的发展路线,将其分为了5个部分,分别是:常见的性能问题;产生性能问题的一些可能原因;解决性能问题的套路;代码建议及潜在性能问题排查项。如看不清大图,下文会有拆解...

2018-06-14 16:06:52 148

原创 Android5.1 Launcher3修改成单层 不能显示所有应用

Launcher.javaprivate void showAppsCustomizeHelper(final boolean animated, final boolean springLoaded,final AppsCustomizePagedView.ContentType contentType) {....Workspace.State workspaceState =...

2018-06-12 11:54:52 374

原创 Android5.1 Launcher3修改成单层 无法卸载非系统应用

先屏蔽不显示搜索框 只显示删除 卸载 按钮Launcher.java protected boolean updateGlobalSearchIcon() { final View searchButtonContainer = findViewById(R.id.search_button_container); final ImageView searchButton = (ImageVi...

2018-06-12 11:45:22 347

原创 Android 5.1 Launcher3 Hotseat 禁止移动和形成文件夹

Launcher.javapublic boolean onLongClick(View v) { ... CellLayout.CellInfo longClickCellInfo = null; View itemUnderLongClick = null; if (v.getTag() instanceof ItemInfo) ...

2018-06-12 11:27:21 743 4

转载 Launcher3 5.1 客制化定制问题修改(更新7.0MTK和高通的修改)

本文全部是基于将双层界面修改成单层桌面的问题最近客户提出要客制化定制Launcher3对最近的修改做个笔记1.修改默认壁纸替换 frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg即可(注意找到对应的分辨率)2.将双层桌面改成单层桌面LauncherAppState.java public static boole...

2018-06-11 15:41:56 1215

转载 android 编译源码不生成odex

一.可以选择编译eng版本(也就是工程版本)    通过choosecombo命令行选择二.修改mk文件实现非odex优化    这里涉及到两个地方,一个是apk的odex优化,还有framework的odex优化    1.禁止apk生成odex: 修改../build/core/package.mk            [cpp] view plain copy# This file wil...

2018-06-04 10:43:20 1753

转载 预置app/apk到系统 && 预置so库进系统 && 预置普通文件和文件夹进系统

有些APP应用或者工程,如果我们想把它放进android的CODEBASE中编译,想让生成的apk直接就在system/app中,这个时候就需要用到如何把一个app编译进工程。(1)对APP工程,首先在packages/app目录下新建工程名,比如xxxx,然后移入工程的src,res,androidmanifest.xml即可(要删除bin跟gen,易造成冲突)。配以对应的android.mk文...

2018-06-04 09:43:08 1469

原创 在android系统源码中预置apK

  如何将无源码的google play APK预置进系统(有源码和无源码有一点区别,网上下载的google play.apk解压之后里面没有源码)?(注意下文中的Test就是我们要预置到源码中的googleplay.apk的名字!!网上下载的Google Play Store 4.6.17.apk,名字中含有空格,将空格去掉或者自直接将它重新命名)1.在 packages/apps 下面以需要预...

2018-06-01 17:07:20 1154

原创 Android 唤醒亮屏

Android的PowerManager和PowerManager.WakeLock用法简析之前的一个社区PDA项目在采集使用者坐标这个功能的时候,需要保持屏幕常亮,面对未涉及过的东西,网络是最好的学习工具,便去找相关的资料,发现原来可以使用PowerManager.WakeLock来实现要求的功能,以下的文字部分转载自网路上的一篇有关博客,感觉写的还比较清楚,可以学习并用来写到项目中,原文链接。...

2018-06-01 10:10:06 2419

原创 判断当前应用程序处于前台还是后台

/** *判断当前应用程序处于前台还是后台 */ private boolean isAppAtBackground(final Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); ...

2018-05-31 17:39:11 648

原创 监听wifi从上次未充电时开始计算各个app wifi 电池使用时间

在Launcher.java中  oncreate()中 获取上次从充电状态结束时的时间和获取电量注册一个监听开机完成广播/*获取电池电量信息 20180523 begin*/        registerReceiver(mBootCompleted, new IntentFilter(            "android.intent.action.BOOT_COMPLETED"));...

2018-05-28 11:48:08 217

Launcher3桌面修改

桌面图标替换,背景的统一和左屏的实现,桌面布局的实现

2018-06-06

大字体大图标的老人桌面

老人桌面的实现,大字体;图标圆形切图实现和重写联系人

2018-05-31

基于xmpp实现的会议纪要

基于xmpp和讯飞语音实现的语音实时转化文字从而实现会议纪要

2018-05-31

基于wifi实现短连接智能门锁

智能门锁是通过wifi实现与锁的短连接;并获取锁的信息(开锁信息 )管理锁人员的增加和减少

2018-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除