
笔记
九州大地
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android关机、重启的实现,但需要权限
//关机public void shutDown(){ try { Runtime.getRuntime().exec("reboot -p"); } catch (IOException e) { e.printStackTrace(); }}//重启public void reboot(){ try { Runtime.getRuntime().exec("reboot"); } catch (IOE原创 2022-09-26 15:07:34 · 1426 阅读 · 1 评论 -
com.android.builder.dexing.DexArchiveBuilderException: Failed to process 解决
com.android.builder.dexing.DexArchiveBuilderException: Failed to process D:\E\CaiFeng\AndroidWork\GateMachine\app\libs\spirit3.jar工程导入jar包之后编译不通过。原因是jar包冲突了。 android原生sdk里面已经存在spirit3.jar包。然后工程又引入一次这个jar包。就会冲突就编译不过。...原创 2021-08-31 16:07:53 · 1115 阅读 · 0 评论 -
Camera2使用
package jwipc.com.monitoringpad.util;import android.Manifest;import android.annotation.TargetApi;import android.app.Activity;import android.content.Context;import android.content.pm.PackageManager;import android.graphics.Bitmap;import android.grap.原创 2021-08-24 10:21:19 · 482 阅读 · 0 评论 -
apt 注解处理工具
问题,public class MyClass extends AbstractProcessor { @Override public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) { System.out.println("process aaaaaaa*****************"); return false;原创 2021-05-25 16:25:18 · 219 阅读 · 2 评论 -
Error:In declare-styleable FontFamilyFont, unable to find attribute android:font
Error:In declare-styleable FontFamilyFont, unable to find attribute android:font导入其他项目,或者依赖其他项目,本地项目和导入的项目的compileSdkVersion targetSdkVersionminSdkVersionbuildVersion等,不一致导致的。找到版本不一致的项目设置成一致的大概就可以解决。如果解决不了就是版本可能低了。如果版本低了但是又修改不了通.原创 2021-04-29 17:27:29 · 197 阅读 · 0 评论 -
Gradle ‘Android‘ project refresh failed Error:Connection timed out: connect
Gradle 'Android' project refresh failed Error:Connection timed out: connect解决办法:工程下的gradle里面的jcenter() google()替换为:maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/jcenter' }原因是...原创 2021-04-27 20:03:16 · 319 阅读 · 0 评论 -
Connect to maven.google.com:443 [maven.google.com] failed: Connection timed out: connect 解决办法
当 build.gradle进行上述配置的话,总会出现如下情况:Could not resolve all artifacts for configuration ':classpath'. > Could not resolve com.android.tools.build:gradle:3.5.3. Required by: project : > Could not resolve com.android.tools.build:grad...原创 2021-04-27 20:00:24 · 830 阅读 · 0 评论 -
android 9.0刘海屏适配
步骤:1判断手机厂商, 2 判断手机是否有刘海 3.设置是否让内容区域延伸进刘海 4.设置控件是否避开刘海区域 5.获取刘海的高度package com.example.screenadaptation;import android.annotation.TargetApi;import android.os.Build;import android.support.annotation.RequiresApi;import android.support.v7.app.AppCompatA.原创 2021-04-25 17:16:49 · 249 阅读 · 0 评论 -
修改density达到屏幕适配
//修改系统内部的density。package com.example.screenadaptation;import android.app.Activity;import android.app.Application;import android.content.ComponentCallbacks;import android.content.res.Configuration;import android.util.DisplayMetrics;/** * 布局文字适配.原创 2021-04-25 15:39:40 · 223 阅读 · 0 评论 -
自定义view的屏幕适配方案
自定义一个计算屏幕缩放比例的单例类,用于获取屏幕的横向和水平方向的缩放比例。package com.example.screenadaptation;import android.content.Context;import android.util.DisplayMetrics;import android.view.WindowManager;public class ScreenAdaptationUtils { //设计稿的宽高像素 private static ..原创 2021-04-25 14:49:15 · 488 阅读 · 0 评论 -
SystemUI开发记录
SystemUI WindowManager.removeView(mNavigationBarView)内存没有释放问题。WindowManager.addView(mNavigationBarView,getNavigationBarLayoutParams());不断添加和删除会造成内存不断升高。解决办法:防止mNavigationBarView重复创建。把mNavigationBarView缓存起来。创建NavigationBarView的时候,mNavigationBarVie...原创 2021-04-08 15:12:58 · 396 阅读 · 0 评论 -
linux命令给文件加减权限
转载:https://blog.csdn.net/weixin_42711549/article/details/81156370原创 2021-03-26 09:49:06 · 280 阅读 · 0 评论 -
Android系统启动流程
1.启动电源以及系统启动当电源按下时引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序Bootloader到RAM,然后执行。2.引导程序BootLoader引导程序BootLoader是在Android操作系统开始运行前的一个小程序,它的主要作用是把系统OS拉起来并运行。3.Linux内核启动内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。当内核完成系统设置,它首先在系统文件中寻找init.rc文件,并启动init进程。4.init进程启动初始化和启动属性服务,并且启动Z原创 2021-03-16 16:49:59 · 162 阅读 · 0 评论 -
Android系统架构与系统源码目录
Android系统架构与系统源码目录http://liuwangshu.cn/framework/system-architecture.html原创 2021-03-16 15:22:52 · 127 阅读 · 0 评论 -
word生成pdf点击目录可自动跳转到指定位置
word点击引用点击目录下拉箭头,选择自动目录的那个目录样式。生成目录之后,点击特色应用。点击输出为pdf。生成之后再点击目录就可以自动跳转了。原创 2021-02-27 15:24:05 · 9800 阅读 · 0 评论 -
指针大小,
指针存放的是内存地址。是以无符号整型存放的。所以32位操作系统中,无符号整型占4个字节大小,64位操作系统中无符号整型占8个字节大小。所以无论什么类型的指针在32位操作系统中都是占4个字节大小,在64位操作系统中占8个字节大小。...原创 2021-01-29 17:34:50 · 743 阅读 · 0 评论 -
vscode检测到#include错误请更新includePath的解决方法
vscode检测到#include错误,请更新includePath。解决方法最近电脑重做,重新安装了一边vscode,但是写代码的时候发现头文件会标错,显示无法找到,下面是我的解决办法:执行命令查看g++包含路径 1 g++ -v -E -x c++ - 复制上面红框的内容在vscode中摁ctrl+shift+p搜索json文件在includePath里面粘贴红框的库路径,注意双引号和逗号格式如果再有问题,试试把"/us原创 2021-01-28 14:26:28 · 32665 阅读 · 39 评论 -
数据类型的定义,进制,原码 反码 补码。
原码:正数的原码最高位是0;负数的原码最高位是1.反码:正数的反码与原码相同,负数的反码是原码的取反 最高位不变。补码:正数补码与原码相同。负数的补码是原码进行加1。溢出:在数据进行操作的时候会导致超出数据类型大小,会向前位进1,多于原始数据类型大小,会被系统自动舍弃 保留从后面开始数据类型大小的位数 1、数据类型的定义1、数据类型的定义变量的定义:数据类型 变量名【标识符】变量的赋值:变量名 = 值;数据类型 变量名【标识符】 =...原创 2021-01-26 17:06:45 · 589 阅读 · 0 评论 -
二进制 八进制 十进制 十六进制 相互转化法
二进制转换为其他进制:二进制转八进制:把二进制的数每三个位分一等份,从右边开始分。计算三个二进制数的和就是八进制数中的一位。如下:101110111001转成八进制:从右边开始分。101 110 111 001三位二进制相加得到的结果: 5 6 7 1101110111001转成八进制的结果为:5671二进制转十进制:用权值法(每个位对应的2的N次幂然后相加)1101转十进制:从右边开始计算。1*2^...原创 2021-01-26 15:54:31 · 3982 阅读 · 0 评论 -
c hellow word C语言编译过程 汇编语言
1、Hello World代码分析://导入标准输入输出库#include<stdio.h>//包含头文件 std标准库 io input output 输入输出库 <>系统库 “” 自定义头文件//这是一行注释/*块注释*///主函数 一个程序有且只能有一个主函数//函数的返回值类型 int整型//函数的参数类型 void空类型// chmod 666 a.txt b.txt...原创 2021-01-26 10:21:24 · 438 阅读 · 0 评论 -
免费版qt下载地址
https://www.qt.io/download-thank-you原创 2021-01-25 15:44:42 · 5428 阅读 · 0 评论 -
Linux内核源码网址
https://www.kernel.org/原创 2021-01-22 11:22:39 · 1355 阅读 · 0 评论 -
android 事件分发
1.手指触摸到屏幕首先触发Activity的Down事件。然后通过dispatchTouchEvent方法进行分发。2、disPatchTouchEvent方法分发到Activity的mWindow的DecoView上DecoView是一个FramLayout是一个ViewGroup。然后分发到ViewGroup的disPatchTouchEvent上。ViewGroup的disPatchTouchEvent分发到ViewGroup的OnInterceptTouchEvent上。3.如果Vi原创 2021-01-21 10:49:08 · 121 阅读 · 0 评论 -
自签名ca证书和文件转为bks文件后缀
https://www.chinassl.net/ssltools/generator-csr.htmlopenssl签名证书; https://ningyu1.github.io/site/post/51-ssl-cert/openssl安装下载地址: http://slproweb.com/products/Win32OpenSSL.htmlopenssl 环境配置地址: https://blog.csdn.net/sunhuansheng/article/details/82218678.原创 2021-01-21 10:17:09 · 326 阅读 · 0 评论 -
http请求的响应码
http请求的响应码一般分为五类 1xx 2xx 3xx 4xx 5xx1xx临时性的消息 101:当客户端问服务端支不支持http2.0的时候,如果支持服务端会返回 101表示我支持http2.0 。 100:当客户端一个请求分多次发送给服务端的时候,就会在head里面加一个字段告诉服务端,你别急我后面还有请求,是要多个请求合并成一个请求的。服务端收到之后就会返回一个100的状态码跟客户端说好的我知道了...原创 2021-01-12 17:01:15 · 511 阅读 · 1 评论 -
Android studio 运行java程序的配置
前提条件:先新建一个Android项目1、新建一个名为javalib(可自由起名)的Module。File —–> new —–> new Module… 然后弹出一个框 在more module 里面选择java Library。如下图:成功后生成如下:到此就创建成功了java项目,但是还无法运行,要做如下操作。2、选中app点击鼠标左键,选择edit configurations...点击OK,就完成了。3、运行的方式方法一:...原创 2021-01-11 17:25:19 · 1812 阅读 · 0 评论 -
android 解决Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Andro
今天,简单讲讲android studio导入工程时,出现报错Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Andro。这个问题其实是由于android studio是2.x版本,而导入的工程是使用android studio 3.0创建的,所以会出问题。在网上找了解决的办法,很简单。解决方法: (1): 升级android studio IDE的版本...原创 2021-01-06 12:19:23 · 223 阅读 · 0 评论 -
Error:Error: This fragment should provide a default constructor (a public constructor with no argume
Error:Error: This fragment should provide a default constructor (a public constructor with no arguments) (jandroid.jwipcmda.deviceinfo.DeviceInfoFragment) [ValidFragment]解决办法:android {lintOptions { abortOnError false checkReleaseBuilds false}原创 2021-01-04 16:41:53 · 183 阅读 · 1 评论 -
android 查看源码的网站
androidxref.com原创 2020-12-18 10:04:57 · 195 阅读 · 0 评论 -
Error:(42, 0) Gradle DSL method not found: ‘implementation()‘
Error:(42, 0) Gradle DSL method not found: 'implementation()'Possible causes:<ul><li>The project 'JwipcMdaServer' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).&l原创 2020-11-05 16:07:58 · 694 阅读 · 1 评论 -
android studio 2.3不支持Lambda表达式 解决方案!
添加Lambda表达式支持有两种方法,官方和第三方1、Google官方module的build.gradle中添加android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.原创 2020-11-05 15:49:33 · 313 阅读 · 0 评论 -
android studio 打开项目所有文件显示内容混乱
问题描述:android studio 显示的内容错乱,xml中显示java代码,java中显示html代码。本地代码显示正常,只在开发工具中查看有问题。看到这个情况,真的是慌得一比,万能的清除缓存并重启,也不起作用了。解决方案:.AndroidStudio3.4/system/cache.AndroidStudio3.5/system/cache删除这个文件下的东西重启就好了...原创 2020-11-03 16:47:07 · 459 阅读 · 0 评论 -
使用adb shell启动特定activity
使用adb shell可以直接运行某个activity,避免调试过程中修改Manifest文件.1.在AndroidManifest.xml中添加属性exported<activity android:name=".MainActivity" android:exported="true" android:label="@string/app_name"/>2.使用命令am即可启动该activity > adb shell am start -n..原创 2020-08-27 09:59:03 · 4840 阅读 · 0 评论 -
Window层级
应用 Window 层级范围是 1~99,子 Window 层级范围是 1000~1999,系统 Window 层级范围是 2000~2999,这些层级范围对应着 WindowManager.LayoutParams 的 type 参数,如果想要 Window 位于所有 Window 的最顶层,那么采用较大的层级即可,很显然系统 Window 的层级是最大的,当我们采用系统层级时,需要声明权限。WindowManager是整个窗口管理机制里面的枢纽,也是这边重点要讲的。WindowManager实现了原创 2020-08-13 17:39:34 · 716 阅读 · 0 评论 -
Activity Dialog Toast 状态栏 导航栏是怎么添加view的
Dialog添加view的方法:public void setContentView(@LayoutRes int layoutResID) { mWindow.setContentView(layoutResID);}Activity添加view的方法:public void setContentView(View view) { getWindow().setContentView(view); initWindowDecorActionBar();}A.原创 2020-08-13 17:25:35 · 171 阅读 · 0 评论 -
适配器模式,门面模式,代理模式,装饰器模式,桥接模式,策略者模式的作用总结。
适配器模式,主要解决的是接口的兼容性,为复用原有接口做一些适配。门面模式,主要解决一组接口的易用性问题。如果接口过多的话可以打包成一个接口,用户只需要使用一个接口就可以操作多个接口。代理模式,主要是对已有接口功能性的增加,增加的功能与原来的功能没有直接性的关系。装饰器模式,也是对已有功能的增强。是对已有接口功能的增强,比如读写字节,使用装饰器之后可以做成带缓冲的读写字节。桥接模式,主要是为了提高同一种类的类的复用性,减少同一类型的类成倍增加的问题。主要是抽象和实现相分离。本质是利用java的原创 2020-08-13 12:05:26 · 312 阅读 · 0 评论 -
Builder建造者模式的使用条件
为什么要使用建造者模式创建对象。1.创建对象需要的属性过多比如十个八个或者二十个等,不宜使用构造函数传递参数。构造函数传递过多的参数可读性不好。同时,又不能暴露set方法去设置属性的值,创建好对象之后就不做修改了。这样就需要用到建造者模式,增加代码的可读性。2.创建对象的时候,需要满足某些属性的值才可以创建成功。属性参数有依赖关系,比如需要判断某个值大于或者小于某个值的时候。或者某些值不能同时为空的时候等等。或者需要满足某些条件才可以。这样的就可以使用建造者模式去创建对象。...原创 2020-08-11 11:43:06 · 361 阅读 · 0 评论 -
serializable和parcelable的区别
parcelable程序员自己手动实现的序列化的方式。速度快效率高。serializable使用了反射,效率相对低一点。parcelable不支持对象数据持久化。不支持把对象保存到磁盘。serializable支持数据持久化,支持把对象序列化保存到磁盘上。数据需要持久化的要实现serializable,不需要持久化的使用parcelable它效率高速度快。...原创 2020-08-11 10:59:34 · 242 阅读 · 1 评论 -
类加载机制加载完成后得到的是什么?重复new同一个类的对象会加载多少次?
类加载完成之后得到的是一个类对象。类名.class对象。重复new同一个类的对象也是只会加载一次这个类,只是会多次执行实例化的步骤。原创 2020-08-07 16:23:22 · 1093 阅读 · 0 评论 -
设计模式基本原则S O L I D
S:Single单一职责原则单一职责原则指的是,一个模块或者一个类的职责要单一。比如一个水果店,那它的单一职责就是卖水果。而不应该同时存在卖菜卖水果卖电脑的行为,水果店那你就单单只经营水果生意就好了。只要是水果你都可以卖,但是不要卖其他杂七杂八的。主要目的是降低耦合性,提高内聚性,同时降低了复杂程度。O: Open开闭原则,对拓展开放,对修改关闭。比如常用的装饰器模式,装饰类拓展功能的那部分就遵循了对拓展开放的原则。装饰类不能对被装饰类进行修改,就遵循了对修改关闭的原则。代理模式也是一...原创 2020-08-07 11:41:11 · 277 阅读 · 0 评论