- 博客(107)
- 收藏
- 关注
原创 java,c++形参,实参,参数传递方式
JAVA:1.java的基本数据类型是传值调用,对象引用类型是传引用。2.当传值调用时,改变的是形参的值,并没有改变实参的值,实参的值可以传递给形参,但是,这个传递是单向的,形参不能传递回实参。3.当引用调用时,如果参数是对象,无论对对象做了何种操作,都不会改变实参对象的引用(这里的对象相当于一个地址),但是如果改变了对象的内容(也就是改变地址指向的内容),就会改变实参对象的内容。C++:c++中传递基本类型和对象是值传递,传递指针(*p)和引用(&p)是址传递无论是值传递还
2020-06-30 16:28:11
353
原创 Android权限管理解析
ManagePermissionsActivitypackage com.android.packageinstaller.permission.ui;import android.app.Fragment;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.Window;import
2020-05-11 11:29:52
2720
原创 动画(AnimationDrawable)
1.在drawable文件夹下新建文件anim_open.xml<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"><item ...
2019-04-23 21:05:25
231
原创 轻量级缓存框架——ACache(源码解析)
/** * Copyright (c) 2012-2013, Michael Yang 杨福海 (www.yangfuhai.com). * <p> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance...
2019-04-20 14:12:40
353
转载 上滑解锁流程分析
1、用户手指touch屏幕,产生touch down事件,最底层view StatusBarWindowView会执行onInterceptTouchEvent,看是否需要拦截touch事件,touch down事件在此没有被拦截,再一级级往子View传递,都没有被拦截,之后执行OnTouchEvent,从子View开始往父View传递,一级级往父View传递,也都没有消耗touch d...
2018-12-24 17:38:17
1501
原创 Android HandlerThread 完全解析
这里我们准备使用HandlerThread实现一个抽奖的小程序,点击start按钮,照片和姓名每0.1s切换一次,形成滚动效果,点击stop按钮,滚动暂停,最后一次的照片和姓名会留在界面上首先上实体类import android.graphics.Bitmap;public class Participant { private Bitmap picture; pri...
2018-12-12 15:31:03
198
原创 MVP模式
https://blog.youkuaiyun.com/lmj623565791/article/details/46596109针对以上博客内容,进一步梳理内容(一)Model层(业务逻辑和实体模型)实体类: User =>String username =>String password业务逻辑:...
2018-12-10 11:44:35
167
转载 HandlerThread,IntentService
HandlerThread集成了Looper的Threadhttps://blog.youkuaiyun.com/lmj623565791/article/details/47079737IntentService自己创建线程(HandlerThread),自行结束线程https://blog.youkuaiyun.com/lmj623565791/article/details/47143563...
2018-11-13 15:30:17
152
原创 Android反编译工具的安装和使用
安装软件地址如下,最好安装最新版本https://ibotpeaches.github.io/Apktool/ http://jd.benow.ca/ https://sourceforge.net/projects/dex2jar/ 1.安装使用Apktool 详细的安装介绍文档地址:https://ibotpeaches.github.io/Apktool/install/...
2018-11-08 11:20:30
473
原创 SystemUI之快捷设置区域加载过程分析
布局构成详细说明,快捷设置区域的布局是由 StatusBar.java的 makeStatusBarView ()统一加载,通过方法 inflateStatusBarWindow 方法加载布局 super_status_bar.xml 。protected void makeStatusBarView() { ...... inflateStatusBarWindow(c...
2018-11-01 14:45:29
1874
原创 adb操作注意事项
1.adb shell 后无法rm apk,提示为只读内容解决方法:adb remount成功后再尝试删除,如果还不行,尝试执行mount -o remount rw /system(也就是将/system分区重新挂载为可读写分区)2.adb push apk后不生效解决方法:到目录下把apk删除再push内容...
2018-10-26 11:49:22
395
原创 接口回调(传递数据)
背景:两个Fragment组成主界面,左边的Fragment是个目录、即列表,右边的Fragment是详细信息面板,需要显示左边Fragment传过来的数据;实现:1.首先定义一个接口,如下 public interface TransValue{ public void trans(String string); }2.左边的Fragment是要传递数...
2018-10-17 15:42:01
4121
原创 长按power键显示关机界面流程
FreemePhoneWindowManager.javapublic int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) { int result = super.interceptKeyBeforeQueueing(event, policyFlags); ...... }Phon...
2018-10-12 17:43:26
2081
转载 java知识点链接
Java中synchronized的用法http://www.importnew.com/21866.htmlJava中LinkedList解析https://www.cnblogs.com/yueyanglou/p/5231901.html
2018-09-30 11:06:28
145
原创 上滑通知栏Notification中smallIcon的显示影响因素
NotificationIconContainer.javacalculateIconTranslations(){ ......if (firstOverflowIndex != -1) { int numDots = 1; translationX = visualOverflowStart; for (int i = firstOverflowIn...
2018-09-12 18:04:10
972
原创 SystemUI中的Notification流程
参考链接https://blog.youkuaiyun.com/hy_cold/article/details/72824707不管是发出一个新的通知还是对已经存在的通知进行更新,调用的都是NotificationManager.notify(int id,Notification notification)。最后走到SystemUI的时候首先调用StatusBar中的成员变量mNotificationL...
2018-09-07 14:07:27
4256
原创 Tile的着色位置---icon.java
public final class Icon implements Parcelable { ...... private ColorStateList mTintList;static final PorterDuff.Mode DEFAULT_TINT_MODE = Drawable.DEFAULT_TINT_MODE; // SRC_INprivate Port...
2018-08-24 10:49:37
572
原创 常用指令总结
【git】下面是直接更改某次提交的操作步骤:将HEAD移到需要更改的commit上:git rebase f744c32cf74454a74bb2f80e5e38b120cb475af1 --interactive 找到需要更改的commit, 将行首的noop改成edit, 按esc, 输入:wq退出 更改文件 使用git add 改动的文件添加改动文件到暂存 使用git commi...
2018-07-28 11:54:37
442
原创 解决切换语言后退回桌面,ALL APPS界面和时间桌面重叠问题
首先通过打印log分析具体操作对应着packages/apps/Launcher3/src/com/android/launcher3/Launcher.java中怎样的代码流程1. 在设置中切换语言->代码中会走入方法setLoadOnResume()中2. 从设置中回到ALL APPS界面->代码会走入方法onResume()中,进入mOnResumeState==State.APPS
2018-04-19 16:37:54
619
原创 高温高压系统预警机制
frameworks/base/packages/SystemUI/src/com/android/systemui/power/PowerUI.java添加一个全局变量private int mHealthType;在class Receiver的onReceive中添加mHealthType=intent.getIntExtra("health",BatteryManager.BATTERY_...
2018-02-26 17:22:35
641
原创 解决铃声和音乐同时播放的问题(通过获取和释放音频焦点来完成)
在目录packages/providers/MediaProvider/src/com/android/providers/media/RingtonePickerActivity.java中添加修改import android.media.AudioManagerimport android.content.Contxt;import android.media.AudioManager
2018-01-09 18:00:30
1509
原创 adb 指令总结
adb shell "pm list packages" > packagesList.txt将所有的包打印到packagesList.txt文件中adb shell "dumpsys package com.mediatek.camera" > package.txt查看包com.mediatek.camera中运行的活动,查看打开应用进入的第一个活动可以搜索关键词launch
2018-01-05 15:10:21
374
原创 Android8.0在Setting中添加Led指示灯闪烁开关
1.frameworks/base/core/java/android/provider/Settings.java中添加/** *Control whether to enable led indicator mod. *@hide */public static final String LED_INDICATOR_MODE=”led_indicator_mode”;/** *
2018-01-05 14:13:48
3645
原创 运行时权限处理(在Email中添加动态权限请求)
参考链接:https://blog.youkuaiyun.com/lmj623565791/article/details/50709663在MainActivity中添加如下内容:import android.Manifest;import android.app.Activity;import android.app.Fragment;import android.content.pm.Pa...
2017-12-18 14:03:53
778
原创 Android crash解决集锦
问题描述:外接U盘长点击一文件夹选中后拨出OTG线提示停止运行log内容:----- timezone:GMT11-22 10:19:48.753412 5655 5655 E AndroidRuntime: FATAL EXCEPTION: main11-22 10:19:48.753412 5655 5655 E AndroidRuntime: Process: com
2017-11-27 17:20:25
2789
原创 SIM卡设置默认短信流程分析(数据流量和电话设置相似)
工具显示sim卡设置页面对应的类是Setting$SimSettingActivity实际上在Setting类中只有一行声明public static classSimSettingsActivity extends SettingsActivity{/* empty */}到AndroidManifest.xml中去找Setting$SimSettingActivity的注册声明,观
2017-11-21 18:00:46
2463
原创 Android报错总结
1.视频通话报错,报错log如下11-14 11:32:33.727838 950 4302 D AES : onEndOfErrorDumpThread: system_app_crash Process: com.google.android.dialer11-14 11:32:33.727838 950 4302 D AES : Flags: 0x38cbb
2017-11-15 11:37:27
2328
原创 GMS相关内容
1.谷歌开机向导wifi跳不过的可能原因:*手机之前登陆过Google账户,需要重新全擦*vendor/partner_gms/products/gms.mk文件里面添加了属性ro.setupwizard.require_network=any \,需要将该属性删除
2017-11-10 09:53:20
987
转载 自定义控件
http://www.cnblogs.com/whoislcj/p/5711001.htmlhttp://blog.youkuaiyun.com/allen315410/article/details/39343401
2017-11-03 17:30:46
266
原创 View和ViewGroup的事件分发机制
https://blog.youkuaiyun.com/lmj623565791/article/details/38960443 (Android View 事件分发机制 源码解析 (上) )https://blog.youkuaiyun.com/lmj623565791/article/details/39102591(Android ViewGroup事件分发机制)View的事件分发机制dispatch...
2017-10-31 17:33:45
269
转载 自定义开关机动画,开机logo
一、开机动画:1) 制作bootanimation.zip。制作方法举例如下:分别创建名为“part0”和“part1”的文件夹以及一个名为“desc.txt”文件。“part0”中存储动画的第一阶段的资源图片,“part1”存储第二阶段的资源图片,注意图片为png格式。播放控制由“desc.txt”指定,内容如下:320 480 30p 1 0 part0p 0 0 pa
2017-10-30 19:20:39
4047
转载 Android网络技术
1.HttpURLConnectionhttp://www.cnblogs.com/Liang-Blog/p/5760201.html2.Socket(套接字)http://blog.youkuaiyun.com/yuzhiboyi/article/details/7743390/3.HttpClienthttp://www.cnblogs.com/cxcco/archive/20
2017-10-18 16:03:33
201
原创 设计模式——工厂模式(java)
工厂:顾名思义,生产,加工产品的地方工厂模式:就是在软件中提供专门用来创建对象实例的类(相当于一个加工生产对象的工厂),对所有的new操作进行封装,当要实例化对象的时候,根据传入的参数决定要实例化哪一个对象。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂方法模式的扩展。工厂方法模式:我们要创建一个生产不同口味冰淇淋的工
2017-09-21 16:51:42
292
原创 Android下添加自定义按键值
1)在frameworks/base/data/keyboards/Generic.kl文件中添加映射key 185 F15key-- 是关键字。固定值,不需要改变。185-- 该按键在linux驱动中对应的键值,我在这里只是假设的这个值,至于具体对应的是那个可以查看“include/linux/input.h”F15 -- 185按键映射到Android中的按键,它
2017-09-13 17:57:33
1067
原创 录音机(SoundRecorder)接收多种广播的操作
private void receiveBroadcast(Context context,Intent intent){ String action=intent.getAction(); String command=intent.getStringExtra(COMMAN); if(Intent.ACTION_MEDIA_EJECT.equal
2017-09-07 16:14:32
533
原创 开机设置卡1为发送短信的默认sim卡
设置短信发送默认sim卡的位置为framework/base/telephony/java/android/telephony/DefaultSmsSimSettings.java在if(subInfos.size()>1){}中添加int firstSubId=SubcriptionManager.from(context).getActiveSubscriptionInfoForS
2017-09-06 19:39:33
3505
原创 在设置的搜索中添加搜索项(例如指纹管理)
package/apps/Settings/src/com/android/settings/search/SearchIndexableResources.javaimport com.android.settings.fingerprint.FingerprintManagerFrament;sResMap.put(FingerprintManagerFrament.class.getName
2017-08-31 10:49:20
893
原创 通知根据电量颜色闪烁对应的颜色
frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.javaimport android.os.BatteryManager;private int mDefaultRedNotificationColor;private int mDefaultGreen
2017-08-30 17:09:44
472
原创 led分析(app->framework->jni->hal)
从上往下分析1.notification的使用(app)/** * 发送通知 */ public void setNotification(){ /** start */ //1.得到NotificationManager: mNotificationManager = (NotificationManager)
2017-08-29 11:39:09
599
原创 Fragment(碎片)
Android Fragment 真正的完全解析(上)https://blog.youkuaiyun.com/lmj623565791/article/details/37970961Android Fragment 真正的完全解析(下)https://blog.youkuaiyun.com/lmj623565791/article/details/37992017DialogFragment 创建对话框...
2017-08-10 10:38:46
273
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人