![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 开发
文章平均质量分 62
Android开发常见问题
超级大坏蛋2018
这个作者很懒,什么都没留下…
展开
-
oom_adj
oom_adj值越高则代表进程越不重要,在系统执行低杀操作时,会从oom_adj值越高的开始杀。系统lowmemeorykiller机制下对于进程的级别的以变量的形式定义在framework/base/core/java/com/android/server/am/ProcessList.java类中...转载 2018-07-15 10:34:02 · 1340 阅读 · 0 评论 -
git配置
原文:http://blog.jobbole.com/78960/推荐!手把手教你使用Git2014/10/26 · IT技术, 书籍与教程 · 55 评论 · Git原文出处: 涂根华的博客 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都...转载 2018-07-15 12:05:00 · 108 阅读 · 0 评论 -
3DES加密碰到的一些问题
/** * 加密方法 * * @param keybyte 加密密钥,长度为24字节 * @param src 被加密的数据缓冲区(源) * @return * @author SHANHY * @date 2015-8-18 */public static byte[] encryptMode(byte[] keybyte, byte[] src) { try...原创 2020-03-02 18:23:56 · 1015 阅读 · 1 评论 -
读书笔记 《Android源码设计模式解析与实战》--- 单例模式
1,恶汉单例public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton(){} public static Singleton getInstance(){ return INSTANCE;...原创 2020-05-06 16:27:10 · 140 阅读 · 0 评论 -
java反射机制改变sharePreference的存储位置
/** * 反射改变sharePreference的存储位置 * * @param context * @return */public static SharedPreferences getSharedPreferences(Context context) { try { //利用java反射机制将XML文件自定义存储 Field fie...原创 2019-02-18 15:29:00 · 307 阅读 · 0 评论 -
常用仓库连接
转载:https://blog.csdn.net/qq_33413264/article/details/83186167 mavenCentral() maven { url "https://jitpack.io" } maven { url 'http://4thline.org/m2' } maven { url 'htt...转载 2018-12-26 21:44:03 · 39065 阅读 · 0 评论 -
JNI调用总结
一,CMakeLists 英文文档:https://cmake.org/documentation/中文文档:https://www.zybuluo.com/khan-lau/note/2547241,路径配置,在buildGradle的android层目中进行配置例如:externalNativeBuild {cmake {path "src/main/cpp/CMakeLists.txt"version "3.10.2"}}pat...原创 2020-05-14 09:27:48 · 631 阅读 · 0 评论 -
横竖屏切换问题
转载至:http://www.cnblogs.com/xiaoQLu/p/3324503.html (1)设置 android:configChanges="orientation" 和不设置这个属性,这两个效果是一样的,activity都是重新创新 (2)横屏切竖屏,以及竖屏切回横屏,这两个也是一样的(如下总结),不会出现网上说的横屏切回竖屏时,生命周期执行两遍的问题 ...转载 2018-12-27 17:23:27 · 274 阅读 · 0 评论 -
buildGradle中配置属性
有时候为了方便,我们需要将某一些属性配置在buildGradle中,例如,想让一个app项目适配两种不同的系统或者机型,代码编译或者打包的时候可能需要引用不同的配置就需要在buileGradle中进行不同的配置。如果想定义一个boolean类型的属性,我们可以下在android的 defaultConfig结点中写buildConfigField "boolean", "isPx30",...原创 2020-03-19 10:00:03 · 703 阅读 · 0 评论 -
各种字符串转换方法
//毫秒值转换为日期public static String millToDate(long millisecond){ Date d = new Date(millisecond); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); return sdf.format(d);}//...原创 2019-01-07 17:56:37 · 1935 阅读 · 1 评论 -
有用的博客整理(Android系统编译相关)
//在Ubuntu18.04中Android Studio开发环境搭建http://baijiahao.baidu.com/s?id=1604117887374452787&wfr=spider&for=pc//AndroidStudio下载https://developer.android.google.cn/studioGrub Rescue恢复https:...原创 2019-04-28 16:01:39 · 232 阅读 · 0 评论 -
Studio导入项目出现 Error:SSL peer shut down incorrectly
随便建一个项目,然后产看build-gradle文件的gradle是多少,然后将倒入项目的gradle改成一样的版本原创 2018-12-26 21:14:24 · 266 阅读 · 0 评论 -
build-gradle running
将对应的gardle下载下来,然后放在c盘的.gradle目录下原创 2018-12-26 21:20:03 · 213 阅读 · 1 评论 -
Collections 对集合对象进行排序
例如:实体类public class Sign { int keyIndex; String name; public Sign(int keyIndex, String name) { super(); this.keyIndex = keyIndex; this.name = name; } ...原创 2019-01-15 22:32:51 · 546 阅读 · 0 评论 -
读书笔记 深入理解安卓内核设计思想 ---Android启动过程
一,安卓设备启动三阶段 Bootloader LinuxKernel 和Android系统服务·二,第一个系统进程init PID是0三,陆续启动其他关键性的服务进程 ServieManager Zygote SystemServer四,ServiceManager的启动crical选项说明是系统关键进程,该进程四分钟内异常退出,则设备重启进入还原模式,Z...原创 2020-05-06 18:48:10 · 415 阅读 · 1 评论 -
文件读写
/** * 生成Crc * @param */public static String Crc32(String filePath){ CRC32 crc32 = new CRC32(); crc32.update(getBytes(filePath)); long value = crc32.getValue(); return Long.toHexS...原创 2019-03-07 16:21:22 · 90 阅读 · 0 评论 -
AndroidStudio中logcat输入查询框突然不见了怎么办
选择下面的按钮,点击一下,然后再选回去就可以了原创 2020-03-18 16:03:39 · 1098 阅读 · 0 评论 -
生产消费模型,使用多线程,wait Notify
最近,冠状病毒疫情比较严重,写了一个生产口罩,消费口罩的一个demon,主要学习如何使用wait和nitify先创建口罩类package maskproduce;import java.util.Random;import java.util.RandomAccess;//口罩public class Mask { private String color; ...原创 2020-03-04 18:27:19 · 102 阅读 · 0 评论 -
编译安卓源码常见问题整理
1,解决/bin/sh: lz4c: 未找到命令LZ4是一种压缩算法,解决方法如下:安装lz4:apt-get updateapt-get install liblz4-tool重新编译 ok解lz4文件:lz4 -d 文件名2,关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案在Ubuntu中,有时候运用sudo a...翻译 2019-04-21 12:05:17 · 484 阅读 · 0 评论 -
读书笔记 《深入理解安卓内核设计思想》获取ServiceManager服务 二
上一把我们分析了如下函数static jobject android_os_BinderInternal_getContextObject(JNIEnv* env, jobject clazz){ sp<IBinder> b = ProcessState::self()->getContextObject(NULL); return javaObjectForIBinder(env, b);}通过该函数我们会拿到一个ServiceManger对应的服原创 2020-05-29 09:28:22 · 299 阅读 · 0 评论 -
读书笔记 《深入理解安卓内核设计思想》获取ServiceManager服务 一
1,应用程序只需要调用ServiceManager.getService(name)就可以获取到获取到相应的服务 /** * Returns a reference to a service with the given name. * * @param name the name of the service to get * @return a reference to the service, or <code>null</cod原创 2020-05-20 16:30:06 · 1102 阅读 · 0 评论 -
读书笔记 《深入理解安卓内核设计思想》 ServiceManagager的启动构建
1,启动方式:通过解析init.rc文件启动ServiceManager2,调用/frameworks/native/cmds/servicemanager/Service_manager.c 的main方法3,main方法所做的工作原创 2020-05-20 12:10:14 · 190 阅读 · 0 评论 -
原生RadioButton 修改颜色或者样式
1,如果只是修改颜色的话我们只需要在xml文件的RadioButton 中添加一个属性android:buttonTint="@color/color_main"指定你想要的颜色就可以了2,如果要修改radioButton的原始样式,则需要自定义一个selector 例如:radio_group_selector.xml<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://sc...原创 2020-07-29 17:27:33 · 1856 阅读 · 0 评论 -
如何去掉,要将音量调高到推荐水平以上的弹框
在开发pos设备的过程中,会发现这种问题,当用代码设置音量的时候回出现"要将音量调高到推荐水平以上"这种弹框,如果你不点击,弹框会自动消失,但是音量会还是推荐的默认音量如下:我开发的pos机是没有触屏事件的,而且我想每次开机后都想要设置成最大音量,如何解决?当我调用设置音量的方法 mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, //音量类型 volume,...原创 2021-03-05 10:21:20 · 1789 阅读 · 2 评论 -
如何操作/dev/graphics/fb0 并显示文字
最近,公司的有一个需求,在Android的设备上挂了一个SPI的小屏幕 ,设备节点为/dev/graphics/fb0 需要显示一张图片或者一些文字,于是网上搜索整理了一些思路:1,我的设备是spi的小屏,屏幕的尺寸为320*240,所以只能显示这么大的空间 2,要操作/dev/graphics/fb0 对于Android上层来讲,就像操作文件一样,因此要把这个设备节点当成文件一样进行流的读写操作 3,我这个屏只能显示rgb565 的像素格式,我是怎么知道的,网上有一篇博客讲的很详细,...原创 2022-02-22 12:14:31 · 3427 阅读 · 1 评论 -
mmkv框架移植
最近不想用Android原生的SharedPreferences存储方式了,中所周知,SharedPreferences会存在卡顿的现象。也许有人想改用apply()的提交方式,但这样会存在数据丢失的现象。于是想使用腾讯的MMKV框架存储兼职对。问题来了,当我使如下方式引入框架的时候,编译后直接提示编译失败,提示我的项目里的so文件都找不到了。implementation 'com.tencent:mmkv:1.0.22'分析了一下,可能与我项目中使用so库的方式有关,因为我项目中是将s.原创 2020-08-18 17:07:00 · 1088 阅读 · 0 评论 -
synchronized 的简单理解使用
synchronized(this)//此处this指的是进入此代码块的线程对象(也就是那个对象调用了该方法,就表示当前锁是那个对象),如果t1进来了,那么锁住t1,若t1时间片结束了,t2走到此处也只能在上一句代码处等待t1获得了时间片后执行完synchronized锁住的所有代码,t2才能进去执行,若去掉synchronized(this),则t1和t2随时都可以进来执行此段代码中的任何一步,时间到了另一个接着进来执行synchronized 修饰方法用范围是整个方法,所以方法中所有的.原创 2020-12-04 16:31:29 · 1834 阅读 · 1 评论 -
Android系统源码下载
1,ubuntu电脑2,下载 repo 工具:mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo3,建立工作目录:mkdir WORKING_DIRECTORYcd WORKING_DIRECTORY4,初始化仓库:repo init -u https://mirro原创 2022-05-07 21:49:44 · 718 阅读 · 0 评论 -
使用adb shell 命令接收串口发送过来的16进制数据 或者 发送16进制数据
如果我们再android设备上调试串口的时候,有时我们需要使用adb shell命令,假设我们使用串口发送的数据是16进制,那么使用cat 这个设备节点,有可能显示的是乱码例如。此时我们就可以看到串口另一端发过来的16进制数据了。找到你要发送或者接收串口数据的设备。原创 2022-11-23 15:57:58 · 3303 阅读 · 0 评论 -
安卓MQTT协议的的使用,并使用protobuf协议传输数据
1,导入2个jar包2,在AndroidManifest中添加Service<service android:name="org.eclipse.paho.android.service.MqttService" />然后在代码中定义自己的Servce.例如我的叫:MQTTService3,在我们服务启动的时候调用init方法进行初始化MQTT测操作 private void init() { String uri = host;原创 2020-08-19 16:38:29 · 3299 阅读 · 2 评论 -
Android jni c++ 线程中调用java中的方法
Android C++调用java侧的方法原创 2022-06-21 18:28:51 · 1620 阅读 · 0 评论 -
Android Toast 防止重复弹出
如果有这样一个场景,用户不停的狂点某一个按钮,而这时这个按钮刚好就会触发一个Toast弹框,是不是就会出现,Toast不消失的现象。如果这个时候你是这样的现象,那么你的Toast一定是这样写的Toast.makeText(CrashApplication.getApplication(),text,duration).show();这样写就会造成Toast重复弹框的问题。现在有这样一个工具类,可以防止Toast重复弹框,直接上代码importandroid.os.Handler;...原创 2020-10-09 15:35:14 · 1108 阅读 · 0 评论 -
Socket通讯中使用DataInputStream 接收数据不全的问题
当我们通过socket进行通讯的时候,接收数据,大家一贯的写法可能是下面这样的 //接收数据 byte[] b = new byte[len]; is = socket.getInputStream(); input = new DataInputStream(is); input.read(b);.原创 2021-05-10 12:28:56 · 1596 阅读 · 1 评论 -
webViwe 报错 For security reasons, WebView is not allowed in privileged processes
问题起源:当我们申请我们的app为系统应用,也就是当我们在AndroidManifest文件中添加android:sharedUserId="android.uid.system"这一行的时候,如果我们使用webView就会报错:For security reasons, WebView is not allowed in privileged processes。这个是8.0代码中的一种安全机制。网上查找资料,解决方案都是通过Hook技术根本思想是在异常发生前就给sProvider.原创 2020-06-03 13:49:16 · 7392 阅读 · 2 评论 -
安卓 ScrollView 显示绿边
今天碰到一个问题,发现我的ScrollView 总会有一个绿色的边,不管我如何设置Scrollview的样式,总是存在这条绿色的边框如下:设置scrollview的背景,设置父布局的背景,设置scrollview里面的背景都不起作用,包括在设置scrollbar也不起作用。一直郁闷的,不知道什么原因,开始一直以为是scrollview控件的问题,我用的系统是安卓8.1,看了源码,也没发现什么猫腻。最后终于发现原来是焦点问题,scrllview的边框不是本身的颜色,是因为它获取了焦点才会有原创 2020-08-07 17:21:29 · 472 阅读 · 1 评论 -
Lancher3在androidStudio中运行 ,安卓8.1代码中的Lancher3代码
问题一:Lancher3是多渠道打包,所以找不到這个产品,直接注释掉:问题二:同上:直接注释掉问题三:解决方案:在defaultConfig中添加flavorDimensions属性配置成成默认或者根据自己需要:问题四:找不到依赖 直接将版本改成了26.0.0问题五:根据提示,意思是不能再AndroidManifest.xml中声明最小sdk的默认版本,所以我直接将该配置在AndroiudManife...原创 2020-10-13 14:40:42 · 311 阅读 · 0 评论 -
安卓静默安装或升级后,apk不自动解决方案,Android 8.1
由于做的产品是pos机,不是一个普通的app,所以需要使用静默升级的工能1,静默升级代码:publicstaticStringsilentInstallApkByReflect(StringapkPath,Contextcontext){Stringresult="";try{PackageManagerpackageManager=context.getPackageManager();...原创 2020-10-09 15:41:45 · 799 阅读 · 1 评论 -
安卓Log4a框架的使用
1.下载log4a的源码,编译运行 项目地址https://github.com/pqpo/Log4a2,将librarylog4a模块下的项目java代码copy到自己的项目中3,将jniLibs目录下面按的so文件copy到自己的项目中,copy自己需要的armera平台4,将loginit这个java文件copy到自己的项目中5,修改 代码里的缓存log路径和Log文件路径,修改成自己想要放在你自己项目的位置6,修改缓存文件的缓存buffer,改成自己想要的大小,该值...原创 2020-08-21 16:52:43 · 1181 阅读 · 1 评论