
android
文章平均质量分 60
Else_Q
谈笑间,都会了
展开
-
使用Android Studio生成一个plugin
个人备忘贴,生人闪避!!!!开整:1.新建一个module(Java的)2.src/main下添加文件a.创建groovy目录b.创建groovy文件c.创建META-INF\gradle-plugins目录d.创建xxx.properties文件(命名需要注意,会在其他module使用时用到)删除多余文件,最终目录结构如图3.gradle配置4..properties文件配置(命名以及内容)5.生成本地plugin6.使用...原创 2021-12-03 17:56:33 · 2695 阅读 · 0 评论 -
随手记RxJava中的观察方式
个人未在项目中使用过Rxjava,今天简单体验了一下,出于好奇翻了一下源码,记录一下Rxjava的观察者方式。 public static void main(String[] args) { Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() { @Override public void su原创 2021-07-20 15:36:34 · 113 阅读 · 0 评论 -
Android使用keytool-importkeypair生成系统签名
Android系统源码中提供了platform.x509.pem 、platform.pk8等签名文件例如:这个是不能直接在调试的时候使用的,如果要用,需要先转换为android studio调试用的jks签名文件。而keytool-importkeypair可以用来生成Android 系统签名,关联地址如下:https://github.com/getfatday/keytool-importkeypair这里需要注意,以下命令需要在linux执行(MAC好像也行),但是window.原创 2021-07-19 16:52:22 · 2798 阅读 · 2 评论 -
Android 中usb支持的传输模式
usb的四种传输模式对应的场景:1.批量传输USB协议提供批量传输类型是为了支持在某些不确定的时间内进行大量的数据通信,如打印机、扫描仪、硬盘、光盘等设备2.控制传输USB协议引用控制传输有两方面的原因,一方面,在USB系统中,设备在正常工作之前必须先进行配置,USB主机必须为设备分配总线上唯一的设备地址,并完成读取设备的各种描述符,根据描述符的需求为设备的端点配置管道,分配带宽等工作。另一方面,在设备的工作过程中,主机希望能及时地获取设备的当状态,或者设备出现问题时希望主机能及时做出补救措原创 2020-09-30 17:30:04 · 1236 阅读 · 0 评论 -
build type is not debuggable
Android studio调试时不显示变量,且通过add to watches 添加的参数变量都显示Cannot find local variable。通过debug运行时提示“build type is not debuggable”。根据提示可知由于编译不是debug模式导致的。首先查看build.gradle中是否对 debuggable 参数进行了配置。我这里没有配置,所以打开右侧Build Variants发现由于之前编译release版本的apk,所以在此处将编译类型默认设置原创 2020-08-25 12:02:52 · 2620 阅读 · 0 评论 -
判断Android 下app是否系统签名
如果有个工具类需要系统权限的应用才能调用(Permission is only granted to system apps),怎么判断是否具有系统级权限?找个系统权限,判断一下: private boolean isSystemApp(String pkgName) { boolean isSystemApp ; PackageManager pm = getPackageManager(); //下面是一.原创 2020-08-21 17:23:50 · 2319 阅读 · 0 评论 -
Android 下一种快速获取当前设备ip的方式
主要是利用Linux的ip route命令“ip route show”该命令不需要权限,直接通过Runtime执行即可,目前在7.1.2 、8.0等设备上测试过,再高版本未测试。代码:private void getLocalIp() { Process process = null; try { process = Runtime.getRuntime().exec("ip route show "); } ca原创 2020-08-20 09:11:04 · 662 阅读 · 0 评论 -
对于CountDownLatch和CyclicBarrier使用场景的理解
一.CountDownLatch1:多个线程等待某个线程执行完成时再开始执行,如果用一条黑线表示一个线程的话,如下图:2:某个线程等待多个线程执行完成时再开始执行,如果用一条黑线表示一个线程的话,如下图:二.CyclicBarrier 多个线程都完成各自指定逻辑的时候再继续执行剩余逻辑示例1: private static void oneWaitMore() throws InterruptedException { final Coun..原创 2020-06-17 12:13:00 · 819 阅读 · 1 评论 -
Android cpu性能优化基础
先看两个和cpu相关的指令以下两个指令一个用于查看各线程cpu占用情况,一个用于观察线程运行在哪个核心上(多核cpu)a.adb shell topUsage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]线程占用cpuadb shell top -m 5 ...原创 2021-07-20 15:39:39 · 1618 阅读 · 1 评论 -
Android 中屏幕相关参数获取方法
SW: Configuration config = getResources().getConfiguration();int smallestScreenWidth = config.smallestScreenWidthDp;OTHER Display display = getWindow().getWindowManager().getDefault...转载 2019-04-02 15:58:35 · 502 阅读 · 0 评论 -
android中的Window
1.通过LayoutParams了解Window分类这里的WindowManager#LayoutParams继承的ViewGroup.LayoutParams,并实现了序列化(因为WindowManager和WindowManagerService的交互是一个IPC过程需要序列化)。 我们可以看到LayoutParams的构造函数中有两个比较重要的参数:flags和type。 Fla...原创 2018-11-30 17:20:53 · 2023 阅读 · 0 评论 -
BLE相关类与主要方法
一.类整理Bluetooth相关类如图所示,其中le包下位api level 21新增类,下面着重介绍红线类1. BluetoothAdapter public final class BluetoothAdapter extends Object java.lang.Object ↳ android.bluetooth....原创 2018-11-14 15:09:38 · 506 阅读 · 0 评论 -
HandlerThread的应用场景
HandlerThread是什么? 它就是一个线程,一个实现了Handler通信机制的线程,也就是说不用我们再去实现Looper的一系列工作了。实现了这个功能之后,这个线程就和我们的主线程类似。我们也可以像是在主线程一样快乐的使用Handler了,而且也不用担心阻塞主线程了。个人认为HandlerThread有以下优点:1.众所周知普通的Thread一旦执行完,就结束。然...原创 2018-07-26 14:33:05 · 2196 阅读 · 0 评论 -
性能优化工具2——MemoryAnalyzer(MAT)内存泄露的简单检测
以下用MemoryAnalyzer对内存泄漏的检测作简单介绍: 首先androidStudio自带Memory Monitor可以分析内存泄漏问题,方法如下,当我们执行了一系列操作后点击垃圾回收(需要先进行垃圾回收,这样才能发现那些该回收的类没有被回收掉)然后就可以点击 dump java heap 进行分析了: 点开后如图2: 如上class name下原创 2017-12-19 11:57:01 · 1313 阅读 · 0 评论 -
性能优化工具1——android studio monitors 之 start allocation tracking
先上图看在哪里使用,图1: 使用很简单,红色圈内的按钮点击一次开始跟踪,再次点击结束,监测的区域则为阴影区域(黄色圈内) 从 allocation tracking 字面意思的理解:跟踪资源的分配,我这里主要看的是heap堆空间一.什么时候需要用到这个功能 正常情况下,我们不进行操作时内存应该是处在一个平稳状态,或者平缓上升的状态如图2:原创 2017-12-18 16:07:01 · 589 阅读 · 0 评论 -
DialogFragment使用记录
dialogfragment原创 2017-01-12 17:01:21 · 391 阅读 · 0 评论 -
github 公钥配置
出处:http://www.cnblogs.com/qcwblog/p/5709720.htmlWarning: Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts. Permission denied (publickey). fatal: Could转载 2017-04-17 14:05:31 · 765 阅读 · 0 评论 -
android studio—— Github 从创建到提交
git 使用过程中真是会出现各种各样的问题,我就是想把我的项目放到github上,并且本地可以用android studio 的ui直接操作,在知晓一些git知识的情况下还是遇到了很多问题。这篇文章就简单记录一下将项目导入github的步骤,关于git的命令以及可能出现的错误等不做详解;因为亲测步骤,只要按照步骤来至少不会报错。1.安装git,不多说2.配置git信息,config原创 2017-04-17 16:34:32 · 264 阅读 · 0 评论 -
四大组件——service
参考作者:丿黑色丶幽默丨灬 参考链接:http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的原创 2016-09-09 17:19:59 · 363 阅读 · 0 评论 -
笔记——service
1.onStartCommand()方法在Android开发中,调用Context的startService方法启动Service的生命周期时,如果Android面临内存匮乏,可能会销毁掉你当前运行的Service,然后待内存充足的时候可以重新创建Service,Service被Android系统强制销毁并再次重建的行为依赖于Service中onStartCommand方法的返回值。而Serv原创 2016-09-09 12:04:18 · 271 阅读 · 0 评论 -
Handler机制
做android的都知道Handler机制在面试中是常客,但由于android自身对handler的实现方式(在ActivityThread中实现了 ),所以大家平时可能都会用,但是一说到handler机制的时候可能会想什么鬼,handler不是子线程更新主线程时用的吗?有什么机制?不错,在android中是更新主线程时常用的,确切的说是异步消息机制,用于多线程通讯。android从子线程更新主线原创 2016-09-07 14:32:22 · 310 阅读 · 0 评论 -
android事件分发机制view
本文出自郭霖的博客转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/9097463其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如转载 2016-11-16 17:38:23 · 379 阅读 · 0 评论 -
android事件分发——ViewGroup
版权声明:本文出自郭霖的博客转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/9153761记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全转载 2016-11-16 17:43:34 · 261 阅读 · 0 评论 -
android基本架构
android基本架构转载:http://www.cnblogs.com/lijunamneg/archive/2013/01/18/2866953.htmlAndroid其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application转载 2016-12-19 15:42:36 · 226 阅读 · 0 评论 -
Android中使用AndroidTestCase
我们在写项目或平时学习的过程中常常需要写一个方法确定一些内容,这时候需要用到AndroidTestCase类,执行选择Run—android—Junit—test(我平常写一些算法的时候还是更习惯建一个java project,但是没办法有些测试比如sqllite,contentprovider就不行,java里没有) 第一步: 代码 public class转载 2016-09-13 11:32:40 · 7990 阅读 · 0 评论 -
Canvas类使用过程中的总结
一.drawText 1. canvas.drawText(text, x, y, paint); text和paint不必多说,x,y确定了字的位置,其中x默认是这个字符串的左边在屏幕的位置,y是指定这个字符baseline在屏幕上的位置。 例如:canvas.drawText(text, getWidth()/2, getHeight()/2, mPaint)原创 2017-01-06 16:54:43 · 343 阅读 · 0 评论 -
android studio使用记录
1.运行java eclipse可以直接新建java工程,如果我们平时需要写一些简单的算法demo,没必要启动虚拟机时,可以直接在java工程中测试。 方法:New ——Model——Java Library then:添加类,添加main方法直接右键 run 即可2.android studio运行java时控制原创 2017-02-06 17:01:57 · 283 阅读 · 0 评论 -
Errors running builder 'Android Package Builder' on project 解决办法
下载了android studio,更新了最新的sdk,并且和eclipse用的sdk放在了一起,当再次打开eclipse的项目运行时就出现了如图的错误:从网上查了一下,找了好久才找到的,原因如下:1.eclipse中安卓的buildtools默认是用sdkmanager里版本最高的,我已经下载了Android7.0,所以buildtools是24.0.12.但是电脑上的JDK为了跟后原创 2017-01-11 16:13:23 · 12042 阅读 · 11 评论 -
Android 自定义View属性相关细节
从鸿洋的公众号上看到的,在博客上没找到,自己也一直疑惑所以记了下来。(1.19日更新:擦,微信图片被屏蔽了,害得我自己专门截图)自定义View中构造方法中调用初始化代码,两种写法的区别(1)第一种(2)第二种 在每个方法中通过自己定义的init()方法初始化数据。对于两种写法,大家都不陌生吧,肯定的,谁都见过,但是很少有人会去问:这两种有什么区别呢?说实话,区别不大,但是在使用场景上还是...转载 2017-01-05 15:45:05 · 292 阅读 · 0 评论 -
android --文件存储路径
一般手机上分为内置存储卡和外置存储卡; 内置存储卡分为可见和不可见; 不可见的 一般都是我们创建的 sqlite 数据库 (使用SQLiteOpenHelper时默认路径)等重要文件在这里面;具体路径 data/data/“你的报名”,比如:/data/data/com.example.soucetest(手机没有root的话是打不开这个文件夹的,模拟器是可以得) 以下以我用到过原创 2016-09-14 14:08:33 · 584 阅读 · 0 评论 -
app:layout_scrollFlags
ScrollFlags共有五种常量值供AppBarLayout的Children View使用,在xml布局文件中通过app:layout_scrollFlags设置,对应的值为:scroll,enterAlways,enterAlwaysCollapsed,snap,exitUntilCollapsed;也可以在代码中通过setScrollFlags(int)方法使用以下文字记录(无效果图)原创 2017-03-24 12:57:21 · 2322 阅读 · 0 评论 -
Intent Flag介绍
原作者:zhangge原文地址:http://www.cnblogs.com/xingfuzzhd/archive/2012/12/26/2834078.htmlFLAG_ACTIVITY_BROUGHT_TO_FRONT 这个标志一般不是由程序代码设置的,如在launchMode中设置singleTask模式时系统帮你设定。 FLAG_ACTI转载 2016-09-09 10:47:28 · 314 阅读 · 0 评论