自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mrlove的博客

这是我的一次新的尝试与开始,也是你的第一次遇见。。。

  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 总笔记

1.更新代码方式: repo sync -c --no-tags -r YB-c 或者–current-branch表示只拉取当前分支代码,坑爹啊,我在init指定了分支,同步的时候,你却悄悄给我拉些没用的。–no-tags 不拉取tags,tag虽然不大,但架不住多–no-clone-bundle 不使用clone.bundle,clone.bundle是git bundle一样的打包文...

2019-09-30 11:10:16 1610

原创 Android 11 Framework 增加自定义API到系统中

由于客户的应用是自己的签名, 并不属于系统应用, 于是重新修改编译, 将源代码直接复制到framework中.刷机 将 out\target\product\rk3568_r\super.img 刷入系统.毫无疑问, 直接崩溃了, 原因是这个属于未公开的API, android 11不让上层应用调用.重新编译系统, 成功后,验证代码有没有增加到framework.jar中。没毛病, 自定义的相关类都在framework.jar里了.修改 frameworks\base\Android.bp。

2023-11-03 17:54:36 386

原创 C语言预处理命令详解

C语言预处理命令详解一 前言预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置。预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。C语言提供多种预处理功能,主要处理#开始的预编译指令,如宏定义(#define)、文件包含(#include)、条件编译(#ifdef)等。合理使用预

2021-02-08 17:54:34 751 1

原创 Android Framework添加自定义服务和接口

1、扩展Framework接口1.1、定义Java接口在 frameworks/base/core/java目录下,根据包名创建一个子目录,比如我创建的是com/wrtsz/api/,在该目录下,新建一个java文件,比如WrtdevManager.java ,对应的代码如下:package com.wrtsz.api; import android.os.Handler;import android.os.RemoteException;import android.util.Log;

2020-10-08 16:03:10 1716 1

原创 BitMap的getRowBytes和getByteCount()

getRowBytes():每一行所占的空间数。getByteCount():BitMap的大小。为什么在一般情况下不用bitmap.getByteCount()呢?因为getByteCount要求的API版本较高,考虑到兼容性,一般使用上面的getRowBytes方法。getRowBytes:Since API Level 1getByteCount:Since API Level 12源码:public final int getByteCount() { return g

2020-09-07 10:22:15 598

原创 Ethernet网络流程分析

2020-07-09 19:24:40 206

原创 Android Studio无法执行Java类的main方法问题及解决方法

环境android studio版本:3.6.1gradle版本:5.6.4gradle插件版本:3.6.1错误提示FAILURE: Build failed with an exception.* Where:Initialization script '/tmp/ReflectTest_main__.gradle' line: 20* What went wrong:A ...

2020-04-09 10:50:18 3415 3

原创 Java反射机制之Method invoke执行调用方法例子

①创建两个类,一个父类,一个子类package com.mrlove.test;public class BaseObject { public void getObjectName(){ System.out.println("BaseObject"); }}package com.mrlove.test;public class SubObject extends Ba...

2020-04-09 10:24:40 1340

原创 Android Volley的简单使用

①首先添加依赖dependencies { //项目依赖添加 implementation 'com.android.volley:volley:1.1.1'}②实现代码final TextView textView = findViewById(R.id.textView); String url = "https://www.baidu.com"; ...

2020-04-07 15:12:04 897

原创 锁卡功能需求-展锐平台

展锐平台1、展锐平台的锁卡配置基本上都是在对应的NV工程中配置的,包括锁MNC、MCC以及锁网、卡槽依赖、过期卡限制等等功能。展锐平台一共有5中锁,这5种锁可以单独使用也可以组合使用。在组合使用的时候,modem检测的顺序如下:SIM锁–>集团锁–>服务供应商锁–>网络子集锁–>网络锁2、除了在NV工程中的配置之外,还会根据项目的需求在java代码中进行修改。实例...

2020-03-27 11:06:40 922

原创 锁卡功能需求-MTK平台

MTK平台1、首先是修改build/tinno_script/build_modem.sh 在这个编译文件中根据订单来添加锁卡的需要的宏。2、然后在modem/mcu/pcore/custom/service/nvram/l4_nvram_def.c文件中根据已经定义好的宏和项目是单卡还是多卡来修改。如果是多卡,则需要添加多卡的配置。并且在这个文件中添加对于SMS FDN的控制(如需要则添加...

2020-03-27 11:03:16 958

原创 性能分析工具 — bootchart 工具使用(android 8.1)

bootchart 在 android 平台的使用步骤在 android 源码路径 system/core/init/README.md 中包含了对 bootchart 的使用说明。1.PC 机安装 bootchart 工具sudo apt-get install bootchartsudo apt-get install pybootchartgui 2. 打开 bootchart...

2020-02-21 16:58:28 523

原创 一台电脑配置多个SSH KEY,多个用户身份提交代码

前言当想在同一台电脑上用多个用户身份提交代码,例如:在公司电脑上用公司用户名提交代码,用私有用户名提交自己的代码到github上,可以使用下面的方法。生成 SSH KEY①执行命令ssh-keygen -t rsa -C "[email protected]"创建github对应的sshkey,命名为id_rsa_github$ ssh-keygen -t rsa -C "you...

2020-01-22 17:31:36 684

原创 git 更改现有提交记录中的用户名称和/或电子邮件地址

更改作者信息git要修改历史历史记录中所有提交用户名称和/或电子邮件地址,可以在仓库根目录下执行如下操作:①新建如下脚本rename.shrename.sh#!/bin/sh#更改提交中所有邮箱为OLD_EMAIL的为新的用户名和新的邮箱git filter-branch --env-filter 'OLD_EMAIL="[email protected]"COR...

2020-01-22 16:18:13 1279

原创 Room,数据库框架学习三(数据库的版本管理,数据库字段增加数据的迁移)

升级数据库:1.首先要修改版本号2.迁移数据//.fallbackToDestructiveMigration() 不保留数据,迁移数据

2020-01-21 10:21:03 2048

原创 Room,数据库框架学习二(使用RecyclerView和databinding)

前言Room,数据库框架学习一上一篇中我们简单的搭建了一个用Room数据库框架完成的demo,这一篇我们将结合RecyclerView和databinding的形式实现数据的加载,进一步完成项目。关于项目的搭建可以参照前一篇文章。①首先把上一篇布局中的TextView去掉,换成RecyclerView,然后增加一个switch开关按钮。<?xml version="1.0" enco...

2020-01-20 09:58:46 2257 1

原创 Room,数据库框架学习一(Room框架搭建)

概念Room设计到的概念有以下几个:1、Entity : 对应数据库中的表,可以使用Entity注解将一个类变成数据库中的一张表结构。2、DAO : 全称Database Access Object,定义了对数据库中数据的读写等操作,DAO中可以使用SQL语句来操作数据库。3、RoomDatabase : 数据库持有类,用于创建数据库或者连接到数据库。内部包含DAO和Entity。Ent...

2020-01-19 10:26:29 2756 1

原创 LifeCycles(让组件感知生命周期,Activity进一步解耦)

首先在build.gradle文件中添加一下依赖android { dataBinding.enabled = true 。。。 } dependencies { implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0-rc02' 。。。}然后创建一个类继承V...

2020-01-16 17:00:10 351

原创 SavedStateHandle的使用,临时保存数据

当使用Savedstate保存数据之后,后台进程关闭,数据 也会得到保留首先在build.gradle文件中添加一下依赖android { dataBinding.enabled = true 。。。 } dependencies { implementation 'androidx.lifecycle:lifecycle-extens...

2020-01-15 13:50:19 8747 9

原创 DataBinding的使用,实现数据的解耦

DataBinding与控制层Controller和ViewModel及ViewGroup三者之间的关系。首先创建一个了类继承ViewModelpublic class MyViewModel extends ViewModel { private MutableLiveData<Integer> number; public MutableLiveData&l...

2020-01-14 16:39:57 310

原创 LiveData与MutableLiveData详解

前言LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与 MutableLiveData的概念与使用方式(但是会涉及到ViewMode的部分代码).LiveData是干什么的?由于LiveData和MutableLiveData都是一个概念的东西(只是作用范围不同)所以就不重复解释了,直接理解LiveData就可...

2020-01-14 15:09:38 5588

原创 ViewModel的简单使用

首先创建一个类继承ViewModelpublic class MyViewModel extends ViewModel { public int num = 0;}然后在mainActivity中通过ViewModelProviders.of(this).get(MyViewModel.class)得到myviewmodel这个实例对象。 @Override prote...

2020-01-14 14:25:50 1798 3

原创 android 跳转到应用通知设置界面(Android 8.0以上)

boolean areNotificationsEnabled = mNotificationManagerCompat.areNotificationsEnabled(); if (!areNotificationsEnabled) { // Because the user took an action to create a notification...

2020-01-09 09:35:03 2785 1

原创 Android暗码启动应用程序

ProductInfo应用分析ProductInfo结构:①AndroidManifest.xml 为应用的 Java 软件包命名。软件包名称充当应用的唯一标识符。 描述应用的各个组件,包括构成应用的 Activity、服务、广播接收器和内容提供程序。它还为实现每个组件的类命名并发布其功能,例如它们可以处理的 Intent 消息。这些声明向 Android 系统告知有关组件以及可以启...

2020-01-07 14:16:28 815 1

原创 Android App多语言开发 github案例

关键代码解析/** * 如果不是英文、简体中文、繁体中文,默认返回简体中文 * * @return */ private Locale getLanguageLocale() { int languageType = CommSharedUtil.getInstance(mContext).getInt(MultiLanguageU...

2020-01-07 14:04:45 306

原创 广播接收者BroadcastReceiver启动Activity需要加FLAG_ACTIVITY_NEW_TASK

BroadcastReceiver启动Activity需要加FLAG_ACTIVITY_NEW_TASKBroadcastReceiver->onReceive的时候传进来的context是ReceiverRestrictedContext,然而ReceiverRestrictedContext的代码很简单,里面没有startActivity方法,而ReceiverRestrictedCo...

2020-01-07 11:49:39 656

原创 工作疑问点

①服务器编译脚本的选择,使用默认的serverbuild.sh,还是每次编译命令都需要找人提供?首单:默认使用serverbuild.sh(除非SPM或VPM提出需求)SMR/MR售后维护:默认延用首单的编译命令翻单:根据翻单需求情况,决定是否定制编译脚本,不添加定制编译脚本,则使用serverbuild.shPs:任何不确定的地方,都可以在team或项目群里提出疑问。事前了解清楚比事后解...

2019-10-18 15:01:03 269

原创 33. 修复FTM apk(开机)和FTM(关机)没有OTG测试项

( 其他没有的手机测试项也可以参照此方法修改 )开机模式下:按*#*#8#*#*查看是否有OTG选项关机模式下:按音量下键和电源键查看①修复开机模式:打开vendor/tinno/k210/qmb_pk/etc/apeftm,将ftm-config.xml中如图所示OTG值改为1,将ftm-config.xml push到apeftm.mk中所示位置,就可以本地验证是否修改成功②修复关机...

2019-10-14 16:26:57 458

原创 借鉴笔记

电话靠近手机熄屏幕在updateProximitySensorMode函数中,判断是否开启基于距离传感器的亮灭屏功能,设置screenOnImmediately。如果是通话中,并且screenOnImmediately 为false,则开启距离传感器的亮灭屏功能。否则关闭距离传感器功能,则靠近屏幕不会息屏。Log分析系统根据log类型,分为main,radio,events,system,...

2019-10-12 18:08:33 296

转载 Makefile 中:= ?= += =的区别

在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VREVRE = “Hello World!”elseendififeq ($(OPT),define)VRE ?= “Hello World! First!”endififeq ($(OPT),add)V...

2019-10-10 17:20:25 103

原创 31.Android翻单项目如何初始化

31.翻单项目如何初始化①首先在要进行翻单的定制化项目下新建reorder_config文件夹,如下图所示:②文件夹内复制qmb_pk翻单项目里面需要覆盖的文件,一般是如下图所示这些文件:(各文件作用参考:26.订单目录简介)③修改编译脚本,首先复制当前项目编译脚本进行定制化修改,如下图所示④erverbuild_k210_pk.sh文件内修改内容可以参考其他同基线翻单项目修改,注意脚本...

2019-09-30 15:59:13 210

原创 30.ota包上传服务器失败后,进入后台手动上传图解

30.ota包上传服务器失败后,进入后台手动上传图解①进入后台后,在项目管理中,搜索当前项目名,项目名获取方式如下:②搜索页面如下:③看发布日期选择正确的项目,点击配置按钮④进入配置页面后,按照图示操作⑤点击测试IMEI管理,在搜索栏搜索对应项目,再点击重置所有...

2019-09-30 15:58:05 986

原创 28.jack编译报错的问题

28.jack编译报错的问题错误信息:ERROR: Communication error with Jack server (52) make解决方法:工程根目录内执行以下三句export JACK_JAR=./out/host/linux-x86/framework/jack.jar./out/host/linux-x86/bin/jack-admin stop-server./...

2019-09-30 15:55:51 246

原创 27.Google规范暗码讲解

27.Google规范暗码讲解暗码:各常用暗码,及所进页面的作用(apk),常用测试或验证情景(Google规范暗码:##暗码##)0661 :查看设备信息(LCD物料信息、TP物料信息、设备有的sensors、camera物料信息等)86436 :查看版本号(客户版本号,内部版本号,基线版本号等)8 :开机下的工厂测试(或称ftm测试,整机测试)Ps :...

2019-09-30 15:54:33 1212 1

原创 26.Android源码客户订单目录简介

26.订单目录简介配置文件:作用、路径Android.mk: include all subdir makefileapps/: 预置客户APPbootanimation: 开关机动画资源buildinfo.sh: 项目相关定义的ro属性配置文档configs.mk: 控制device的宏定义,等订单项目配置makefile文件etc: 手机网络频段信息设置等相关信息gms.mk...

2019-09-30 15:53:21 177

原创 24.如何使用TSDS构建项目

24.如何使用TSDS构建项目

2019-09-30 15:48:22 489

原创 23.通过gerrit 打补丁

23.通过gerrit 打补丁一、直接搜索ID或者commit信息,然后cherry-pick到自己项目上 并add 一个 Reviewers二、如果失败就下载 cherry-pick 包 到需要打补丁的目录手动解决冲突后1.git add2.git cherry pick continue3.git push tinno HEAD: refs/for/地址 //提交到git服务器...

2019-09-30 15:45:36 1037

原创 21.android 7.0,8.0,9.0 Settings设置内置选项在一级菜单fragment方式

21.Settings内置选项在一级菜单fragment方式① 在AndroidManifest.xml 添加如下代码<!-- 这样写,然后在Settings中声明成Settings的内部类,从而不需要单独再写FlashSettingsActivity的实现类 --> <activity android:name="Settings$FlashSettingActivit...

2019-09-30 15:43:02 1228

原创 20.android 7.0,8.0,9.0 Settings设置内置选项在一级菜单activity方式

20.Settings内置选项在一级菜单activity方式① 在AndroidManifest.xml 添加如下代码<activity android:name=".HardKey" android:label="Mrlove" android:icon="@drawable/ic_home_wikofea...

2019-09-30 15:41:53 809

原创 17.Android源码更改内置应用字符串

17.更改内置应用字符串第一步在vendor/tinno/k210/qmb_pk/rroOverlay文件夹下新建要覆盖应用文件夹如DeskClockOverlay接着按覆盖应用DeskClock中String.xml目录路径新建文件夹第二步:在原应用String.xml中找到要覆盖字符串位置,然后在自己的String.xml中覆盖如:把Start week on 该为 Start myw...

2019-09-30 15:39:44 326

adb常用命令.pdf

adb常用命令

2020-02-14

空空如也

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

TA关注的人

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