自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 窗口显示原理之Surface的创建与渲染

Surface的创建

2019-10-30 22:42:58

阅读数 153

评论数 0

原创 MySQL修改root的密码

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;

2019-10-29 13:43:51

阅读数 3

评论数 0

原创 认识一下Android中的Window

Window   Window是个抽象类,PhoneWindow是Window唯一的实现类。PhoneWindow像是一个工具箱,封装了三种工具:DecorView、WindowManager.LayoutParams、WindowManager。其中DecorView和WindowManage...

2019-10-21 23:08:45

阅读数 219

评论数 1

原创 窗口机制的笔记

Activity的生命周期由ActivityThread管控 Activity被实例化后最先调用的方法是attach(),在attach()中实例化PhoneWindow Activity.setContentView()最终调用的是PhoneWindow.setContentView()。在Ph...

2019-10-07 07:21:28

阅读数 156

评论数 0

原创 Android Studio使用WIFI调试应用

先保证电脑和设备(如:手机)连上同一个局域网 确保可以执行adb shell 输入adb -s 32abe500 tcpip 8888 adb connect 设备的当前IP地址 当提示connected to 设备的当前IP地址时说明wifi连接已经成功了。 如果需要断开wifi连接,则输入...

2019-09-26 15:57:44

阅读数 34

评论数 0

原创 ActivityRecord、ActivityClientRecord、Activity的关系

  在阅读Activity启动流程的源码时遇到了ActivityRecord和ActivityClientRecord,那么它们两个和Activity有什么关系呢? 结论   ActivityRecord、ActivityClientRecord、Activity,三者一一对应。 分析   Act...

2019-09-19 23:17:50

阅读数 401

评论数 0

原创 ActivityRecord、TaskRecord、ActivityStack、ActivityDisplay、ActivityStackSupervisor到底是干嘛的?

  最近在阅读Activity启动过程时接触到了这几个概念:ActivityRecord、TaskRecord、ActivityStack、ActivityDisplay、ActivityStackSupervisor。它们是什么,可以用来干什么,以及怎么干的。网络上没有几篇文章可以说明白的,常见...

2019-09-09 22:47:24

阅读数 235

评论数 5

原创 再看Activity的启动模式

  Activity的启动模式:standard、singleTop、singleTask、singleInstance。这四种模式分别是指什么,网上一大堆,就不说了。下面整理下我对这几种启动模式的认识。 为什么要设计这么多种启动模式? 默认启动模式:standard。每次启动Activity...

2019-09-09 11:33:34

阅读数 33

评论数 0

原创 AS导入aar

某个Module依赖一个aar 将aar拷贝至该Module的libs目录中 在该Module的build.gradle中补上下面的代码 repositories { flatDir { dirs 'libs' } } dependenci...

2019-08-26 15:46:24

阅读数 11

评论数 0

原创 Intelhaxm安装失败

Android模拟器启动不了了?AS识别不了Genymotion了?   网上对这些问题有各种各样的处理方法,我都试过但是没有用。后来发现,最根本的原因是intelhaxm-android.exe(Hardware Accelerated Execution Manager)没有安装成功。   怎...

2019-08-25 23:14:52

阅读数 848

评论数 0

原创 在Windows上让Sublime Text支持Cscope

给Sublime Text安装Cscope插件 通过 Preference -> Package Control -> Install Package->搜索Cscope插件,并安装。 下载 cscope.exe,并配置路径 下载cscope.exe的地址:https://do...

2019-08-15 22:29:56

阅读数 50

评论数 0

原创 AlertDialog的标题居中,底部按钮为三个时居中布局,更改按钮文字默认大写的设置

标题居中、更改底部按钮默认大写的设置 <style name="CustomAlertDialog" parent="@style/Theme.AppCompat.Light.Dialog"> <item name=&quo...

2019-05-23 17:34:12

阅读数 315

评论数 0

原创 Android Studio的SVN插件找不到了?

今天开启一个从SVN上checkout下来的项目时发现,Android Studio上svn的插件不见了,可以肯定100%是安装过了的。 现在记录下解决的办法: 1、点击VCS下的Enable Version Control Integration…… 2、在弹出来的窗口中选择Subversi...

2019-05-08 11:52:30

阅读数 119

评论数 0

原创 有关线程的笔记

每创建一个线程都要消耗内存,每个线程都有自己的栈空间(大约1M),也就是说每创建一个线程,操作系统就会给该线程分配1M的空间。而且当线程执行完时间片后需要把数据保存至内存或硬盘中,下一个线程执行时又要从内存或硬盘中取出对应自己的数据,这么一存一取也很耗时间。这就是为什么线程开太多的话,会导致执行任...

2019-04-17 23:10:02

阅读数 223

评论数 0

原创 Binder之ProcessState和IPCThreadState类分析

ProcessState ProcessState表示进程状态,一个进程就一个ProcessState对象。

2019-01-18 23:38:42

阅读数 216

评论数 0

原创 Android Studio导入修改过的系统源码

导入系统源码 在主工程模块(如:app)下新建一个文件夹,名字随意,比如exlibs。 把android.jar放入exlibs文件夹中。 在主工程模块的build.gradle(如:app/build.gradle)加入如下一句话: dependencies { compileOnly...

2018-10-19 14:35:32

阅读数 307

评论数 1

转载 Binder驱动是如何维护本地Binder和Binder代理的映射关系

通信过程: binder设备驱动会为每个进程分配一个数据结构binder_proc,每进程中的每个用到了binder通信的线程分配数据结构binder_thread。 binder设备驱动会为服务进程中的每个服务对象分配数据结构binder_node,它隶属于服务进程的binder_pro...

2018-09-07 15:32:19

阅读数 176

评论数 0

转载 Binder学习指南

Binder学习指南 发表于 2016-01-12 ...

2018-08-29 15:18:26

阅读数 54

评论数 0

原创 报文的编码解码

常见的编码方式:ASCii,BCD,HEX,GBK,UTF-8等 不同编码方式编码的对象不同。如:ASCii、BCD、GBK、UTF-8编码字符,HEX编码字符和数字。

2018-07-25 17:13:09

阅读数 842

评论数 0

原创 位运算符的巧用

1、&amp;amp;运算 特定位归零:使一个二进制数中的某一个/几个数位归零,其余数位不变。 如:保留最左边的两位,其它位归0。 令最左边的两位为1,其它位为0,即0000 0011,然后做&amp;amp;运算 0000 0011 &amp;amp; 0...

2018-07-24 23:18:18

阅读数 119

评论数 0

原创 Binder笔记

进程隔离:一个进程占一个内存空间,各个进程的内存空间完全隔离,数据不共享。 Linux Kernel独立于普通的应用程序,可以访问任何内存空间。 应用程序访问内核的唯一方式就是系统调用,当应用程序发起系统调用时,内核会检查应用程序是否越权访问,若否,则执行内核代码。当应用程序成功调用起内核代码时...

2018-07-09 15:53:41

阅读数 73

评论数 0

原创 ViewRootImpl事件分发笔记

用户点击屏幕产生触摸行为,该触摸行为由底层硬件捕获并传递。 硬件 -&amp;amp;gt; ViewRootImpl -&amp;amp;gt; DecorView -&amp;amp;gt; PhoneWindow -&amp;amp;gt; Activit...

2018-06-30 17:00:22

阅读数 575

评论数 0

原创 Android UI问题记录

连续切换Fragment时,这些Fragment中的EditText不会自动弹出软键盘的问题。 EditText editText = findViewById(R.id.edittext); editText.requestFocus();//必须加上这句才行,因为Frag...

2018-06-01 21:41:03

阅读数 120

评论数 0

原创 FLAG_ACTIVITY_NEW_TASK与FLAG_ACTIVITY_CLEAR_TOP的理解纠正

1.单独的FLAG_ACTIVITY_NEW_TASK并不等价于启动模式 singleTask,它仅表示寻找activity所需的任务栈压入,(即TaskAffinity指定的任务栈,TaskAffinity默认为应用包名) 2.FLAG_ACTIVITY_NEW_TASK+FLAG_ACTIV...

2018-05-30 15:45:46

阅读数 2947

评论数 4

原创 将Activity设置成透明窗口且淡入淡出

将Activity设置成透明窗口且淡入淡出 1.创建淡入淡出的动画文件 fade_in.xml &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;alpha xmlns:a...

2018-04-28 14:44:03

阅读数 401

评论数 0

原创 Activity与AppCompatActivity去掉标题栏

Activity与AppCompatActivity去掉标题栏 Activity去标题栏 1.代码中实现 requestWindowFeature(Window.FEATURE_NO_TITLE); //这句代码必须写在setContentView()前面 2.在清单文件(mani...

2018-04-28 14:30:32

阅读数 4158

评论数 4

原创 JNI Tip

JNI函数中的JNIExport 和 JNICALL是windows平台的jni编译出来的,在Android手机上,其实可以不要这两个关键字的 -

2018-04-18 16:58:29

阅读数 45

评论数 0

原创 JNI数据类型

JNI数据类型 1、8大基本类型:jchar, jbyte, jshort, jint, jlong, jfloat, jdouble, jboolean java jni ...

2018-04-18 11:36:13

阅读数 47

评论数 0

转载 JNI验证应用签名

JNI验证应用签名 原理:获取当前的签名信息并且跟期待的签名信息是否一致,如果是一致,则通过,否则失败。 这个工作在JNI_OnLoad中完成,如下代码: JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) { ...

2018-04-12 17:33:01

阅读数 401

评论数 0

原创 获取java native方法的签名

获取java native方法的签名 用法: 1、javap -s packagename.classname 2、javap -s -p packagename.classname -s表示打印签名信息 -p表示打印所有函数和成员的签名信息,默认只打印public的签名信息。 上述...

2018-04-12 17:09:20

阅读数 205

评论数 0

原创 Android.mk配置事项

预构建库编译 例:导入静态库libx264.a和动态库libx264-148.so LOCAL_PATH := $(call my-dir) #第一组 include $(CLEAR_VARS) LOCAL_MODULE := X264 LOCAL_SRC_FILES :=...

2018-04-08 11:25:34

阅读数 108

评论数 0

原创 CMake配置事项

CMake配置事项 Android Studio的一个module下可以有多个CMakeLists.txt文件,但是顶层CMakeLists.txt文件就只有一个,可以通过该module层下的build.gradle来指定。 android { externalNativeBu...

2018-03-30 11:07:20

阅读数 129

评论数 0

转载 Android的CPU架构

早起Android只支持ARMv5的CPU架构,而发展到现在,支持一下7种架构: ARMv5:现在很少了,应该不需要支持了 ARMv7(2010年起):魅族M9,iphone 3GS,三星I9000等 x86(2011年起):联想K800,使用这种架构的较少,毕竟Android手机大部分是AR...

2018-03-29 15:49:34

阅读数 759

评论数 0

原创 C++ 动态内存

C++ 动态内存 动态分配的对象的生存期与它们在哪里创建的无关,只有当显式地释放时,这些对象才会被销毁。 使用动态内存的一个常见原因是为了让多个对象共享(不是拷贝)内部的数据,并使得当一个对象销毁时,该数据不会被销毁,其它对象仍然可以正常使用。 shared_ptr只在拷贝和赋值时其内部的引用...

2018-03-02 16:19:34

阅读数 62

评论数 0

原创 C++面向对象程序设计

C++面向对象程序设计 在C++语言中,当我们使用基类的引用或指针调用一个虚函数时将发生动态绑定,即JAVA中的多态 基类通常要定义一个虚析构函数,即使该函数不执行任何实际操作,也是如此。 在C++中基类的成员函数有两种:1、基类希望派生类进行重写的函数;2、基类希望派生类直接继承而不用改变的...

2018-02-08 23:18:49

阅读数 69

评论数 0

原创 C++知识点杂谈

C++知识点杂谈 C++中的三种赋值方式: 按值传递。一个参数的值会复制给另一个参数: int a, b; a = b; 按地址值传递。一个地址值复制给一个指针: int a; int *p; p = &amp;a; 按引用传递。不开辟新的内存,相当于给参数起个别名: in...

2018-02-08 09:22:03

阅读数 116

评论数 0

原创 adb logcat常用命令

优先级是下面的字符,顺序是从低到高: V — 明细 verbose(最低优先级) D — 调试 debug I — 信息 info W — 警告 warn E — 错误 error F — 严重错误 fatal S — 无记载 silent //输出标记为tag,优先级大等于l...

2018-01-31 10:32:42

阅读数 96

评论数 0

原创 使用Android Studio给打包的APK命名

Android Studio注意事项 要想令AS打包出来的APK名字有一定的格式,可以在app/build.gradle中按如下写: android { android.applicationVariants.all { variant -&gt; ...

2018-01-09 10:56:30

阅读数 87

评论数 0

原创 C++ 内联函数

C++ 内联函数 内联函数的目的在于提高效率。C++在编译时会将每个内联函数的调用点用函数体展开,如下:inline int max(int a, int b) { return a > b ? a : b; }则调用: cout<<max(a, b)<<endl;...

2017-11-24 17:10:59

阅读数 81

评论数 0

原创 JAVA VS C++

JAVA VS C++ 不同处 JAVA是在声明变量并初始化后才开辟内存空间的,而C++是在声明变量时就开辟了内存空间。 在JAVA中: int[] n; n = new int[10];//如果没有这句初始化,则下行代码会抛出空指针异常 n[0] = 1; 在C++中: ...

2017-11-09 17:24:35

阅读数 229

评论数 0

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