自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小伍的专栏

简单的技术描写

  • 博客(61)
  • 资源 (3)
  • 收藏
  • 关注

原创 android框架_5.recovery的流程中文件分析_012

一、bootable/recovery/common.h文件,有如下定义:#ifndef RECOVERY_COMMON_H#define RECOVERY_COMMON_H#include <stdio.h>#include <stdarg.h>#include <fcntl.h>#include <unistd.h>#include...

2020-09-18 13:39:39 235

原创 android框架_5.0的Recovery流程分析_012

Recovery流程分析之恢复出厂设置分析:/bootable/recovery/目录下:一、首先recovery.cpp文件分析,main()函数#define LAST_LOG_FILE "/cache/recovery/last_log"#if defined(CACHE_MERGE_SUPPORT)static const char *DATA_CACHE_ROOT = "/data...

2020-09-18 12:40:50 342

原创 android框架_5.0的USB授权弹框流程分析_011

android5.1的USB授权弹框流程分析一、在UsbDebuggingManager类中1、文件位置:frameworks/base/services/usb/java/com/android/server/usb/UsbDebuggingManager.java;public class UsbDebuggingManager implements Runnable { privat...

2020-09-18 12:40:30 304

原创 android框架_5.0的Settings模块的分析1_009

一、我们从最原始的AndroidManifest.xml文件开始分析:<manifest xmlns:android="http://schemas.android.com/ak/res/android" package="com.android.settings" coreApp="true" android:sharedUserId="an...

2020-09-18 12:40:06 220

原创 android框架_5.0的PolicyManager类分析_010

PolicyManager类分析相关的类路径如下:frameworks/base/core/java/com/android/internal/policy/PolicyManager.javaframeworks/base/policy/src/com/android/internal/policy/impl/Policy.javaframeworks/base/core/java/com/an...

2020-09-18 12:39:37 107

原创 android框架_xxx.prop编译顺序及原理_007

xxx.prop编译顺序及原理格式 key = valuexxx.propADDITIONAL_DEFAULT_PROPERTIES展开,如键重复取第一次取到的,后面重复的就忽略,通常定义 ro.zygote 之类的特别重要属性PRODUCT_DEFAULT_PROPERTY_OVERRIDES紧跟在 ADDITIONAL_DEFAULT_PROPERTIES 之后,优先级靠后由于这两个规则是取第...

2020-09-18 12:39:01 385

原创 android框架_常用编译变量总结_008

输出目录用得最多,所以先总结输出目录/core/envsetup.mkTARGET_OUT out/target/product/aeon6735_65c_s_l1/systemPRODUCT_OUTTARGET_OUT_INTERMEDIATES out/target/product/aeon6735_65c_s_l1/objTARGET_OUT_INTERMEDIATE_LIBRARIES 诸...

2020-09-18 12:38:42 145

原创 android框架_android build 先后顺序及调试总结_006

首先是 source build/envsetup.sh然后寻找 device vendor 下的 envsetup.sh (最多4层)下面 $(BUILD_SYSTEM) 值为 build\coreMakefile” “include build/core/main.mk”main.mkinclude $(BUILD_SYSTEM)/config.mk include $(BUILD_...

2020-09-18 12:38:23 256

原创 android框架_单独编译ota所需资源_005

首选需要 build 目录其次需要相应的 devices/xxx 目录cp ../k86/out/target/product/magc6580_we_l/cache.img out/target/product/magc6580_we_l/cache.imgmkdir -p out/host/linux-x86/bin/cp ../k86/out/host/linux-x86/bin/simg2...

2020-09-18 12:37:59 107

原创 android框架_自定义客制化_004

可能会用到的工具mkbootfssimg2simgmake_ext4fsmkbootimgsgs4ext4fsunpackbootimgext2simgimg2simgsimg2img所需系统 Ubuntu将刷机包 system.img 转换成 ext4 格式$ simg2img system.img system.raw.img挂载 ext4 格式到Ubuntu$ mount -t ext4 -...

2020-09-18 12:37:31 239

原创 android框架_Eclipse签名相关_013

如果要在Eclipse中调试Android源码中非test key签名的程序(也就是使用platform, media or shared key签名的程序),需要把Android源码中的公私钥对(build/target/product/security)转换为Eclipse能够使用的keystore。转换步骤如下:1、把build/target/product/security下面的某对需要转...

2020-09-18 12:35:53 92

原创 android框架_有用错误日志_003

程序出现问题的时候,需要一些有用的错误信息。其中logcat固然是最有用的一种,但是如果冲掉了就没用。MTK log 也是一个办法,但是也有冲掉的风险。然后就是 /data/anr 目录的文件有很多用处。但是系统还有一个记录的地方就是 dropbox ,这个记录的信息比较单纯,不是详细信息,但是好处是能保存比较多的错误。所以总结下系统出错时需要的信息:1、MTK LOG, 如果开了,这个一定要弄下...

2020-09-18 12:35:16 117

原创 android框架_待机电流问题分析文档_002

待机电流问题处理,分为无法待机和待机电流平均值高两种情况,请分类参考一、 无法进入待机的情况1:能够明显的查看到wakelock的存在cat /sys/power/wake_lock 或者 dumpsys power均可查看wakelock状态,一般情况下可以根据wakelock的名称来定位阻塞待机流程的模块。例如:“PowerManagerService.wakelock”这种锁是客户端申请用来...

2020-09-18 12:34:55 510

原创 android框架_打开和关闭虚拟按键_001

修改源码中system.prop中qemu.hw.mainkeys键值。1.system.prop文件所在位置:device\magcomm\”$Project”\,如:K26中:device\magcomm\magc6580_we_l\2.qemu.hw.mainkeys值为1隐藏虚拟按键,为0时显示。底部虚拟按键显示与隐藏只需修改这个属性即可...

2020-09-18 12:34:05 395

原创 android_View根据图片名字设置背景和监听事件_012

View根据图片名字设置背景和监听事件ImageView imageView = new ImageView(context); int resId = context.getResources().getIdentifier("资源文件drawable图片名字", "drawable", context.getPackageName()); im...

2020-09-18 11:48:50 127

原创 android_ 极光注册会生成相同注册ID的解决方法_011

极光注册会生成相同注册ID的解决方法一、极光不能接收到推送是因为不同设备注册生成了相同的注册ID1、问题根本原因是两个设备拿到同个注册regid ,而拿到同个regid原因是因为极光SDK延迟拿到imei , mac地址又取不到,但rom给的android id 一样,导致在mac地址拿不到的情况下根据Android id重复注册,从而使不同的设备拿到相同的注册regid(android id...

2020-09-18 11:48:17 368

原创 android_经纬度坐标系转换_010

public class CoordinateTrans { public static final String TAG = CoordinateTrans.class.getSimpleName(); private static double x_pi = 3.14159265358979324 * 3000.0 / 180.0; private static double PI ...

2020-09-18 11:48:00 300

原创 android_集成友盟SDK抓程序异常LOG_009

一、集成友盟SDK抓程序异常LOG友盟SDK版本: umeng-analytics-v6.0.1.jar:http://dev.umeng.com/analytics/android-doc/sdk-download让每个工程的 Action.MAIN 的Activity 继承 UmengLogBaseActivity二、UmengLogBaseActivity类代码如下:/*** * 集成 ...

2020-09-18 11:47:44 170

原创 android_MTK流量统计方法_008

Google在android2.2以上版本提供了android.net.TrafficStats类,来获取wifi,3G数据。Android 4.0开始引入流量监控的特性。他可以监控所有的数据流量,支持警告和限制流量使用。当超过特定quota值时,会触发notification或者禁止移动网络。流量监控可以追追踪每个应用的历史数据。用户可以限制特定的应用在后台运行时是否可以联网。通过设备dev_g...

2020-09-18 11:47:22 370

原创 android_AIDL的使用_007

一.什么是AIDLAIDL(Android Interface Definition Language)是一种接口定义语言,可实现进程间通信二.AIDL的使用1.创建aidl文件需要在aidl文件中写一个接口,接口里面写你想要回调的方法例如package com.ojr.aidl;import com.ojr.aidl.Person; interface IPerson{ Str...

2020-09-18 11:46:55 107

原创 android_Properties读取中文乱码解决方案_006

String result; InputStream in; in =mContext.getAssets().open("customer_name.cfg");//获取到输入流 Properties props=new Properties(); props.load(in); result=props.getProperty("key");//key是键 result...

2020-09-18 11:46:38 63

原创 android_获取当前网络ip和mac地址_005

1、获取当前网络ip和mac地址private static String getIpAndMacAddress() { String ip = ""; boolean isBreak = false; String name = ""; try { for (Enumeration<NetworkInt...

2020-09-18 11:46:20 74

原创 android_强制关闭应用的方法和第三方应用的服务_004

1、android中强制关闭应用的方法如下:需要系统权限//传入应用的包名即可kill掉应用private void forceStopApp(String packageName) { ActivityManager am = (ActivityManager) mContext .getSystemService(Context.ACTIVITY_SERVICE);...

2020-09-18 11:46:04 975

原创 android_模拟发送系统按键值_003

import android.hardware.input.InputManager;import android.os.SystemClock;import android.view.InputDevice;import android.view.KeyCharacterMap;import android.view.KeyEvent;/** * <功能描述> 模拟发送...

2020-09-18 11:45:49 102

原创 android_Toast消息不重复显示_002

Toast消息不重复显示private Toast mToast;//传入字符串的IDpublic void showToast(int strId) { if (mToast == null) { mToast = Toast.makeText(this, strId, Toast.LENGTH_SHORT); } else { mToast....

2020-09-18 11:45:31 48

原创 android_两张图片合成一张图片_001

两张图片合成一张图片(竖屏)public static Bitmap add2Bitmap_port(Bitmap first, Bitmap second) { if (first == null || second == null) { return null; } int height = first.getHeight() + second.getH...

2020-09-18 11:44:56 182

原创 PackageManagerService Android 8.1 源码解读 07

继续上一篇:PackageManagerService Android 8.1 源码解读 06h、requestPermissions源码流程解析:1、android6.0 动态申请权限的前戏:Google在 Android 6.0 开始引入了权限申请机制,将所有权限分成了正常权限和危险权限。注意:App每次在使用危险权限时需要动态的申请并得到用户的授权才能使用。2、权限的分类:系统权限分为两类:正常权限 和 危险权限。2.1、正常权限不会直接给用户隐私权带来风险。如果您的应用在其清单中列

2020-09-18 11:11:16 286

原创 PackageManagerService Android 8.1 源码解读 06

接力上一篇:PackageManagerService Android 8.1 源码解读 05六、五部曲 - PMS之权限扫描a、分析此 “PMS之权限扫描” 的目标是: PackageManagerService中执行构造函数()后,需求对【/system/etc/permissions】中的各种xml进行扫描,进行相应的权限存储,让以后可以使用,这就是本次“PMS之权限扫描”分析的目的。b、权限扫描:PackageManagerService执行构造函数()时,通过单例对象SystemCo

2020-09-17 17:28:26 257

原创 PackageManagerService Android 8.1 源码解读 05

继续上一篇:PackageManagerService Android 8.1 源码解读 04这篇主要是讲解apk安装的主要流程代码:f、点击一个apk后,会弹出【安装界面】,同时显示一个“来历不明的应用......”相关字样的对话框,点击“继续”按钮,执行【PackageInstallerActivity.initiateInstall()】方法;这个方法的主要作用是判断apk是否已经安装/** * Dialog to show when the source of apk can not

2020-09-17 16:53:27 230

原创 PackageManagerService Android 8.1 源码解读 04

PackageManagerService Android 8.1 源码解读 03接力上文:五、四部曲 - APK的安装:安装步骤一: 把【Apk的信息】通过【IO流】的形式写入到【PackageInstaller.Session】中 安装步骤二: 调用PackageInstaller.Session的【commit】方法, 把Apk的信息交给PKMS处理 安装步骤三: 进行Apk的【Copy操作】, 进行安装 a、安装的三步走, 整体描述图b、用户从文件管理应用中点击 【..

2020-09-17 14:37:08 383

原创 PackageManagerService Android 8.1 源码解读 03

接力上一篇:PackageManagerService Android 8.1 源码解读 02四、三步曲 - APK的扫描:PKMS的构造函数中调用了 scanDirTracedLI方法 来扫描某个目录的apk文件,8.1,MT6737芯片包含apk文件的目录/vendor/overlay 系统的APP类别/system/framework 系统的APP类别/system/priv-app 系统的APP类别/system/app 系统的APP类别/vendor/app 系统的APP类别

2020-09-17 14:36:48 481 2

原创 PackageManagerService Android 8.1 源码解读 02

接上文:PackageManagerService Android 8.1 源码解读 01d、第三步细节:PKMS.main(),main函数主要工作:【检查】Package编译相关系统属性 【调用】PackageManagerService【构造方法】 【启用】部分【应用服务】于多用户场景 【注册】服务【”package”】和【”package_native”】到ServiceManager中。public static PackageManagerService main(Context

2020-09-16 19:02:21 737

原创 PackageManagerService Android 8.1 源码解读 01

一、PackageManagerService 是什么?答: PackageManagerService(简称 【PKMS】),是 Android 系统中核心服务之一,负责应用程序的安装,卸载,信息查询,解析等工作。与apk相关的信息都在这个服务里可以查询到。二、PKMS 概述信息:Android系统启动时,由【system-server进程】来启动(应用程序的管理服务器PKMS),这个服务类负责【扫描】系统中【特定的目录】,【寻找】目录中的【APK格式的文件】,再对这些文件进行【解析】..

2020-09-16 18:59:04 353

原创 TCP/IP四层模型与OSI七层模型

学习目标:熟悉HTTP协议的知识学习内容:一、TCP/IP通信传输流二、http协议的定义三.HTTP协议基础四.HTTP协议报文结构提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总

2020-08-27 18:17:51 560

原创 Android中的自定义组件和android的动画

自定义ViewActivity、PhoneWindow、DecorView、ViewRoot1、Activity 控制器a、【Activity】并【不负责视图控制】,它只是控制【生命周期】和【处理事件】。【真正控制视图】的是【Window】。b、【一个Activity】包含了【一个Window】,【Window】才是【真正代表一个窗口】。c、【Activity】就像【一个控制器】,【统筹视图】的【添加与显示】,以及通过其他回调方法,来与Window、以及View进行交互。2、W..

2020-08-26 21:51:50 500

原创 Java中的抽象类与接口以及区别和优缺点对比

抽象类&接口?区别?优缺点?适用场景?菜鸟教程:抽象类 & 接口抽象类 & 接口抽象类不能实例化对象的类。通过abstract class来定义抽象类。抽象类必须被继承,才能被使用。abstract可声明抽象方法,抽象方法只包含方法名,没有方法体,具体实现由它的子类确定。抽象方法有两条规则:(1)包含抽象方法的类必定是抽象类(但抽象类不一定有抽象方法)(2)任何子类必须重写父类的抽象方法,或者声明自身为抽象类// 抽象类public abstract

2020-08-19 16:56:04 1004

原创 String的原理 & 不可变性

原理 & 不可变性内部在 Java 8 中,String 内部使用 char 数组存储数据。public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[];}在 Java

2020-08-19 11:34:04 2163 1

原创 Java中原码、补码与反码与float,double精度问题

Java中原码、补码与反码用int型(4字节)的整数6及-6看原码,反码和补码;正数的原码,反码,补码都是一样的;6的原码:00000000 00000000 00000000 000001106的反码:00000000 00000000 00000000 000001106的补码:00000000 00000000 00000000 00000110负数的原码,反码,补码不一样:-6的原码:10000000 00000000 00000000 00000110-6的反码:1111

2020-08-19 10:43:49 730 1

原创 003_Java面向对象的五大基本原则

单一职责原则SRP(SingleResponsibilityPrinciple)是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。开放封闭原则OCP(Open-ClosePrinciple)一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只有服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户...

2020-08-18 18:41:19 102

原创 android中服务的分类

2020-06-18 15:25:56 416

实战Java高并发程序设计.pdf

java线程高并发设计模块的最佳书籍 ,不论从质量来看还是从其他的代码规范来看,都是最佳的书

2019-05-25

深入理解Java虚拟机++JVM高级特性与最佳实践.pdf

深入理解Java虚拟机++JVM高级特性与最佳实践 这个是学习jvm虚拟机最好的书哦,不过这是一本扫描版本的pdf

2019-05-25

[Java设计模式(第2版)(Design.Patterns.in.Java).John.Metsker

《java设计模式(第2版)》通过一个完整的java项目对经典著作design patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。本书创造性地将这些模式分为5大类别,以充分展现各个模式的重要特征,并结合uml类图与对应的java程序,便于读者更好地理解。全书给出了大量的练习,作为对读者的挑战,以启发思考,督促读者通过实践练习的方式来掌握设计模式。同时,作者又给出了这些练习的参考答案,使读者可以印证比较,找出自己的不足,提高设计技能。 《java设计模式(第2版)》适合各个层次的java开发人员与设计人员阅读,也可以作为学习java与设计模式的参考读物或教材。 目录: 第1章 绪论 1 第2章 接口型模式介绍 8 第3章 适配器(adapter)模式 13 第4章 外观(facade)模式 27 第5章 合成(composite)模式 39 第6章 桥接(bridge)模式 52 第7章 职责型模式介绍 62 第8章 单例(singleton)模式 67 第9章 观察者(observer)模式 72 第10章 调停者(mediator)模式 85 第11章 代理(proxy)模式 97 第12章 职责链(chain of responsibility)模式 115 第13章 享元(flyweight)模式 122 第14章 构造型模式介绍 130 第15章 构建者(builder)模式 134 第16章 工厂方法(factory method)模式 141 第17章 抽象工厂(abstract factory)模式 148 第18章 原型(prototype)模式 158 第19章 备忘录(memento)模式 163 第20章 操作型模式介绍 176 第21章 模板方法(template method)模式 182 第22章 状态(state)模式 193 第23章 策略(strategy)模式 204 第24章 命令(command)模式 213 第25章 解释器(interpreter)模式 221 第26章 扩展型模式介绍 236 第27章 装饰器(decorator)模式 242 第28章 迭代器(iterator)模式 259 第29章 访问者(visitor)模式 278

2014-01-03

空空如也

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

TA关注的人

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