<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fmc088的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fmc088</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fmc088]]></copyright><item><title><![CDATA[Effective-java-third Builder 设计模式]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/105271761</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/105271761</guid><author>fmc088</author><pubDate>Thu, 02 Apr 2020 16:04:17 +0800</pubDate><description><![CDATA[常用Builder设计模式


public class NutritionFacts {
    private final int servingSize;
    private final int servings;
    private final int calories;
    private final int fat;
    private final int sodium...]]></description><category></category></item><item><title><![CDATA[HashMap 详解]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/104036781</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/104036781</guid><author>fmc088</author><pubDate>Sun, 19 Jan 2020 11:55:58 +0800</pubDate><description><![CDATA[第一HashMap特点：HashMap是基于Map接口的实现，储存键值对时，它可以接收null的键值，是非同步的，HashMap存储着Entry(hash, key, value, next)对象。 table中存储的是Entry的单向链表。



第二HashMap工作原理：通过hash的方法，通过put和get存储和获取对象。存储对象时，我们将K/V传给put方法时，它调用hashCo...]]></description><category></category></item><item><title><![CDATA[ijkplayer 编译 导入]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/102786523</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/102786523</guid><author>fmc088</author><pubDate>Tue, 29 Oct 2019 10:47:36 +0800</pubDate><description><![CDATA[最近公司准备开发关于视频的应用，要支持很多格式解码视频，准备使用谷歌官方播放器时候，发现很多编码格式支持不了，寻找开发app推荐b站的开源项目ijkplayer项目，当时对比两个比较火热的播发器项目：
Vitamio：自用免费，商用收费，需要收费就排除了;
ijkplayer：B站开源的基于FFmpeg的轻量级Android/iOS视频播放器，看博客很多人使用，遇到问题也好搜...]]></description><category></category></item><item><title><![CDATA[2018-2019安卓系统总结]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/93979299</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/93979299</guid><author>fmc088</author><pubDate>Fri, 28 Jun 2019 13:48:22 +0800</pubDate><description><![CDATA[开发安卓系统，有一些特殊需求，修改系统源码比较普遍，下面说说

需求一：屏蔽按键和触摸功能【物理按键】，但是模拟按键是可以操作【自动化操作】，组合键取消屏蔽

思路：作为系统都知道PhoneWindowManagerPWM是最终处理按键的结果，但是在模拟按键处理上，也会屏蔽掉，所以不合适在PWM服务进行处理，按键触摸流程是从kernel按键值和系统按键值是有映射关系的，需要通过映射表进行转...]]></description><category></category></item><item><title><![CDATA[Magisk 开始认识]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/90376116</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/90376116</guid><author>fmc088</author><pubDate>Mon, 20 May 2019 16:56:02 +0800</pubDate><description><![CDATA[介绍：  

   使用root这块的话，开始使用SuperSu发现有一些问题，没有实时更新，又没办法修改【不是开源的】，magisk则是开源项目，作者很热情的修复bug,实时更新开源项目。

  Magisk 是出自一位台湾学生@topjohnwu开发的 Android 框架，目前来说很牛逼的框架，很多地方都可以使用到。

   Xposed和magisk在功...]]></description><category></category></item><item><title><![CDATA[基于小米卡刷包制作属于自己刷机包]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/89514531</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/89514531</guid><author>fmc088</author><pubDate>Fri, 26 Apr 2019 09:49:28 +0800</pubDate><description><![CDATA[刷机，众所周知，手机前提需要先解锁，才能刷我们定制的刷机包。

  http://www.miui.com/thread-7245699-1-1.html该网站是小米大部分机型的刷机包地址，有喜欢刷机的可以下载

  要刷卡刷包时候，先要刷第三方的recovery，类似刷机系统，这里可以推荐奇兔刷机软件，比较傻瓜化，通俗易懂

  小米卡刷包是以zip的形式保存的，...]]></description><category></category></item><item><title><![CDATA[Android源码  第三方应用普通安装 app权限默认开启]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/83063198</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/83063198</guid><author>fmc088</author><pubDate>Mon, 15 Oct 2018 19:16:24 +0800</pubDate><description><![CDATA[       预装应用app的权限默认开启，修改DefaultPermissionGrantPolicy.java。手动安装的第三方app的权限默认开启是修改PackageManagerService.java。在grantPermissionsLpw函数中添加如下代码


if(pkg.packageName.contains(&quot;com.tencent.mm&quot;) || pkg.packageNa...]]></description><category></category></item><item><title><![CDATA[Android.mk 加入aidl文件编译]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/82628632</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/82628632</guid><author>fmc088</author><pubDate>Tue, 11 Sep 2018 16:57:36 +0800</pubDate><description><![CDATA[ 需要修改Android.mk文件，加入LOCAL_SRC_FILES += $(call all-Iaidl-files-under, .....)

=====================================Android.mk=============================================

LOCAL_PATH:= $(call my-dir)

...]]></description><category></category></item><item><title><![CDATA[查看apk签名,查看key签名]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/82628333</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/82628333</guid><author>fmc088</author><pubDate>Tue, 11 Sep 2018 16:43:47 +0800</pubDate><description><![CDATA[查看apk的签名

方法一：

首先用解压软件解压出META-INF目录下的CERT.RSA文件

keytool -printcert -file D:\Desktop\CERT.RSA

命令执行如图所示：



 

方法二：

查看keystore的签名

命令：keytool -list -keystore D:\Desktop\app_key

命令执行如图：



 

方法三：

...]]></description><category></category></item><item><title><![CDATA[Android 8.0 电池图标 显示分析]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/82627738</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/82627738</guid><author>fmc088</author><pubDate>Tue, 11 Sep 2018 16:28:48 +0800</pubDate><description><![CDATA[        frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java 显示电池图标变化状态，setImageDrawable(mDrawable) 就是设置的电池图标。


    public BatteryMeterView(Context context, AttributeSet a...]]></description><category></category></item><item><title><![CDATA[Windows 查看文件MD5 SHA1 SHA256]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/82627487</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/82627487</guid><author>fmc088</author><pubDate>Tue, 11 Sep 2018 16:07:02 +0800</pubDate><description><![CDATA[命令如下

certutil -hashfile filename MD5

certutil -hashfile filename SHA1

certutil -hashfile filename SHA256]]></description><category></category></item><item><title><![CDATA[android编译时拷贝文件及文件夹]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/81583828</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/81583828</guid><author>fmc088</author><pubDate>Sat, 11 Aug 2018 10:19:23 +0800</pubDate><description><![CDATA[拷贝文件
PRODUCT_COPY_FILES += device/qcom/msm8909/media/media_profiles_8909.xml:system/etc/media_profiles.xml
拷贝文件夹PRODUCT_COPY_FILES += $(call find-copy-subdir-files,*,$(LOCAL_PATH)/xxx,system/vendor/xx...]]></description><category></category></item><item><title><![CDATA[ndroid 如何预置APK到 data 和system/app目录]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/81583775</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/81583775</guid><author>fmc088</author><pubDate>Sat, 11 Aug 2018 10:17:19 +0800</pubDate><description><![CDATA[一、如何将带源码的APK预置进系统？
1)     在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹，以预制一个名为Test的APK 为例
2)     将 Test APK的Source code 拷贝到 Test 文件夹下，删除 /bin 和 /gen 目录
3)     在 Test 目录下创建一个名为 Android.mk的文件，内容如下：
LOCAL_PA...]]></description><category></category></item><item><title><![CDATA[Android 8.0 以后广播接收不到出现问题 Background execution not allowed:]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/81210171</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/81210171</guid><author>fmc088</author><pubDate>Wed, 25 Jul 2018 21:05:31 +0800</pubDate><description><![CDATA[正常我们发送广播：sendBroadcast(new Intent(“this.is.an.implicit.broadcast”));

在targetSdkVersion 在25 Android 7.0以后  使用广播会出现Background execution not allowed:

这时候，把targetSdkVersion 要小于 25 以下 版本进行编译，这样广播就可以接收正常
...]]></description><category></category></item><item><title><![CDATA[Android系统 给第三方应用(system/app)  权限开启（不会弹授予权限窗口）]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/81050520</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/81050520</guid><author>fmc088</author><pubDate>Sun, 15 Jul 2018 10:06:29 +0800</pubDate><description><![CDATA[frameworks/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java 类是对默认权限管理类

可以查看grantDefaultSystemHandlerPermissions 该方法，里面有就有授予权限类似方法,可以模仿

我们可以通过此类来对我们系统中存在的应用进行默认权限设置。

...]]></description><category></category></item><item><title><![CDATA[git :could not open a connection ..Could not read from remote repository. 解决办法]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/81015191</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/81015191</guid><author>fmc088</author><pubDate>Thu, 12 Jul 2018 14:39:17 +0800</pubDate><description><![CDATA[git 在连接外面的服务器时可能出现could not open a connection to your authentication agent问题的解决和Permission denied (publickey).fatal: Could not read from remote repository.Please make sure you have the correct access ...]]></description><category></category></item><item><title><![CDATA[Android系统中设置 默认值 default.xml 参数 解释]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/80958202</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/80958202</guid><author>fmc088</author><pubDate>Sun, 08 Jul 2018 12:07:38 +0800</pubDate><description><![CDATA[在SettingsProvider中设置系统中默认值，我们可以在frameworks\base\packages\SettingsProvider\res\values\default.xml文件中看到常用的一些默认值。default.xml中名称类型意义def_dim_screenbool是否自动关屏，默认truedef_screen_off_timeoutinteger自动关屏幕时间def_a...]]></description><category></category></item><item><title><![CDATA[Android 系统时间自动更新机制--解决 “时间和日期不准确“]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/80950035</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/80950035</guid><author>fmc088</author><pubDate>Sat, 07 Jul 2018 11:41:11 +0800</pubDate><description><![CDATA[两种时间更新机制NITZNITZ(Network Identity and Time Zone，网络标识和时区），是一种用于自动配置本地的时间和日期的机制，同时也通过无线网向移动设备提供运营商信息。NITZ是自从PHASE 2+ RELEASE 96 的GSM中的可选功能，经常被用来自动更新移动电话的系统时钟。NITZ需要运营商网络支持（通过CS网络），目前国内电信、移动都支持NITZ方式更新时间...]]></description><category></category></item><item><title><![CDATA[APK安装时的过滤方式（packageManagerService）：包名白名单或者黑名单---功能验证过，可以参考]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/80949812</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/80949812</guid><author>fmc088</author><pubDate>Sat, 07 Jul 2018 11:15:22 +0800</pubDate><description><![CDATA[有些项目不允许所有APK都拥有安装权限，例如apk只能通过应用商城来安装或者升级，只允许某些特定的apk自升级，不允许pm install等。这就需要添加安装权限白名单来控制。先介绍android中常用的几种安装方式，好针对这几种进行修改 1、 直接调用安装接口。Uri mPackageURI = Uri.fromFile(new File(Environment.getExternalStora...]]></description><category></category></item><item><title><![CDATA[Fiddler实现手机抓包- 解决”creation of the root certificate was not successful“]]></title><link>https://blog.youkuaiyun.com/fmc088/article/details/80949626</link><guid>https://blog.youkuaiyun.com/fmc088/article/details/80949626</guid><author>fmc088</author><pubDate>Sat, 07 Jul 2018 11:05:58 +0800</pubDate><description><![CDATA[手机用fiddler抓包电脑最好是笔记本，这样能和手机保持统一局域网内；其他不多说，直接说步骤了。一.对PC（笔记本）参数进行配置   1. 配置fiddler允许监听到https（fiddler默认只抓取http格式的）         打开Fiddler菜单项Tools-&amp;gt;TelerikFiddler Options-&amp;gt;HTTPS，         勾选CaptureHTTPS C...]]></description><category></category></item></channel></rss>