- 博客(32)
- 收藏
- 关注
原创 PsiElement
1、打开element所在file,并定位到此element处(可用于,查找某个element的引用,查找到后进行跳转时) OpenFileDescriptor(element.project,element.containingFile.virtualFile,element.startOffset).navigate(true)2、查找引用 ReferencesSearch.search(oldMethod)...
2021-08-26 11:55:38
752
原创 Window
相关操作的api主要类是:ToolWindowManagerExToolWindowManager 单例,ToolWindow,Content。ToolWindow就是常见的AS两侧的Structure,Terminal,Logcat这种。Content是Window的容器(有点像contentview吧,但不是view层的),Content有setComponent(JConponent)来将一个jPanle的东西设置给content来显示。Window 的hide show方法 指的是 这个wi..
2021-08-26 11:55:02
172
原创 JavaPsiFacade
1.根据包名类名查找PsiClassJavaPsiFacade.getInstance(project).findClass(packageName, GlobalSearchScope.everythingScope(project))scope是查找范围,packageName是包名+类名,如:android.view.View。ps:GlobalSearchScope.allScope(project) 这个scope找不到 package.R 文件这个类。但是everythi...
2021-08-26 11:54:23
743
1
原创 各种find
查找文件,根据名字(不知路径): FilenameIndex.getFilesByName() ,返回为Array<PsiFile> 查找class,路径已知: JavaPsiFacade.findClass() 查找class,根据名字(不知路径):PsiShortNamesCache.getClassesByName()这个返回的是PsiClass的集合 查找psielment的引用处: ReferencesSearch.se...
2021-08-26 11:53:32
377
1
原创 各种create/add
1.create rename: RefactoringFactory.createRename()2.重新build virtualFile对应的PsiFile : FileContentUtil.reparseFiles()3.为某个方法,增加文本;比如:public void onClick(View v){},插件生成了个方法叫doClick(View v)(参考AccountSDKUtil)。生成后在onClick中添加这个方法的调用fu...
2021-08-26 11:52:35
347
原创 dpi densityDpi的一些理解(慎入,不一定对)
屏幕尺寸通常说的几寸屏,指手机屏幕的对角线的长度,单位是英寸。(1英寸 = 2.54厘米)比如5寸屏,5.5,6寸屏等等屏幕分辨率指屏幕的像素点数,单位是px,比如1960 * 1080.通常图片或照片这种都是像素,所以屏幕越大越可以清晰显示高清图片,否则比如手机屏幕是480* 800,但图片是2000的,那么图片放到屏幕中,就需要缩小2倍以上,即图片每2个多像素就要合并成1个(或舍弃一个?)才能展示在屏幕中,也就失真了。屏幕像素密度 dpi指每英寸上的像素点,它和dp/dip有直接关系。意为:
2021-08-26 11:46:32
1390
原创 一些android趣事
今天发现了一个有趣的东西,嗯,只发现了一个,先记录下来,以后遇到都记录在这里。一。android Build类中的一个注释:
2021-06-02 15:24:55
108
原创 签名加密的一些总结
1 base64:android中的base64 default 超过一定位数还有一堆\n出现,导致和服务器对比时不通过,改成使用Base64.NO_WRAP。
2021-06-02 14:33:25
88
原创 activity切换黑屏的一次经历
ActivityA启动了一个ActivityB透明页,然后启动qq授权。qq授权成功后回到ActB,ActB控制finishA且finish自己,并且启动一个新页面ActC。这个时候就you
2021-06-02 14:30:00
193
原创 正则在AS中的使用经历
工程中直接使用的Toast.makeText(text).show();然后有一天产品说要让Toast居中显示,嗯改动不大,但是使用的地方有百十来条吧,换成之前也就全局搜下Toast.makeText
2021-06-02 14:17:05
198
1
原创 正则案例(迭代)
一、数字1.正整数:^\+?[1-9]+\d*$ 正号可有可无,1-9开头。后续\d随意多少。(之前浏览好多直接就一个\d*的。不能0开头哈)2.负整数:^-[1-9]+\d*$3.整数:^(0|([+-]?[1-9]+\d*))$ 单独一个0,或者+- 取一个或没有,1-9开头,后续随意。 001这种排除不算。3.正浮点数:^\+?(0|[1-9]\d*)\.\d+$ 1)-,2)0或任意位数1开头的数字,3).4)至少一个数字(含0,代表精确到小数点后几位,可以...
2021-05-17 20:05:45
229
原创 正则字符表
在线测试:嗨正则,可以输入测试文本,输入正则表达式,另外右边会有注释对正则得说明,有快速参考,输出得匹配信息也含有 捕获组等等。字符 描述 定位符 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。一般可以用于完全匹配,而不是验证字符串中是否包含。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r'.
2021-05-15 14:29:09
180
原创 资源覆盖
有app,lib1,lib2。如果app有app_name用app的。如果没有的话,之前并不知道会用谁的。如果app直接引入项目的方式。先导入谁就用谁的,比如先implementation lib1,就会用Lib1的。如果lib1,lib2都打包成aar,放到app libs下并使用implementation fileTree(dir: 'libs', include: ['*.aar'])引入libs下所有的aar。那么是按名字排序,谁先就用谁的。(事件经过,app下有个account的aar,同时
2021-04-26 16:38:13
171
原创 kotlin一些技巧记录
1。属性委托:可以直接实现Kotlin提供的两个接口ReadWriteProperty和ReadOnlyProperty来分别实现var和val属性的委托例子:class Preference<T>(private val key: String, private val defaultValue: T) : ReadWriteProperty<Any?, T> {override fun getValue(thisRef: Any?, property: K
2020-09-14 17:42:06
174
原创 一些视图小技巧
1.ScrollView 居中问题。场景:很多时候我们不用列表视图,但是又无法保证scrollview中的布局中的内容会超过一屏,设计 又想在内容少的时候要居中显示; 有时列表页在CoordinatorLayout中,并且和topbar有联动效果,即需要nestscroll。但是列表页没有结果时要显示无结果页,且无结果页的高度比如只有100dp(后面称作子view吧),设计想居中显示(即不能设置margintop来让其看起来居中)。解决:因为常规的方式就是<ScrollView 里放一个自适应
2020-08-27 10:27:59
186
原创 一些小问题总结
一:mvvm模式中使用协程和线程,activity调用vm时使用listener(listener回调之前,activity finish)的情况1:协程。delay5秒调用回调。如过activity finish了。协程会直接取消,不会进行回调。如果把delay(5)改成5个delay(1),并分别打印1,2,3,4,5。会在activity finish时停留在当前delay处不再继续执行2:线程。Thread直接跑的话会触发回调。如果activity finish后,其中设置的listener
2020-08-24 13:57:45
147
原创 夜神host配置
之前搜到的是adb指令进行host的配置:一:提取文件,编辑,再push回去adb rootadb remountadb pull /system/etc/hostsadb push hosts /system/etc/hosts验证的指令:cat /system/etc/hosts操作方便,但是windows可能不生效,因为回车符号的缘故,需要其他软件进行编辑二:直接修改文件,使用cat指令,cat >> /../.hosts。这个指令我也不熟悉,因为当时懒得找
2020-08-24 10:56:19
632
原创 kotlin.罗 之必杀 room 坑之两三事
@Entity 自增长id的坑@Entitydata class User( @PrimaryKey(autoGenerate = true) var id: Int?, @ColumnInfo(name = "user_name") var userName: String? = null, var age: Int? = 0)一直用User(0)来插入数据库,会报错(如果dao里的insert 设置参数为onConflict = OnConflic
2020-08-18 16:14:25
544
原创 开博了
2020年,出生以来最特殊,最难忘的一年。因为今年没有回家。疫情来了。以后看博客也能想起这段时间吧。工作也因为疫情受了些影响,准备一下、沉淀一下。最近时间看了好久的源码,有些理解了,有些也只是浅尝辄止。最初的想法是回顾下常见的面试题,因为3年了,一直参与的国外的项目,都是对接google等国外软件第三方。本想准备下,但看到面试题,很多经常用到的东西却无法很准确的给出答案,其实就是理解不深了,使...
2020-03-07 18:41:42
161
原创 android library增加productFlavors,并在app module 引用某个flavors
library中增加productFlavors和appmodule中类似productFlavors{ buildConfigField "boolean", "ReadTestServer", "false" sdkDemoTest{ buildConfigField "boolean", "ReadTestServer", "true"
2017-12-15 13:40:12
2958
1
原创 adb shell ps
adb shell ps 查看所有进程及内存占用等adb shell dumpsys meminfo 包名 或者进程id 查看某个进程的内存占用情况grep用于过滤条件adb shell ps|grep com.xxx可以过滤前缀是这个名字的进程,比如qq,它有三个进程,看qq里的腾讯新闻的时候还会开两个进程windows下这个指令会提示grep找不到,可以加双引号解决 ad
2017-04-01 18:20:45
5142
转载 Android WebView Memory Leak WebView内存泄漏
转自:http://www.cnblogs.com/hnrainll/p/4309792.html要使用WebView不造成内存泄漏,首先应该做的就是不能在xml中定义webview节点,而是在需要的时候动态生成。即:可以在使用WebView的地方放置一个LinearLayout类似ViewGroup的节点,然后在要使用WebView的时候,动态
2017-03-31 16:45:36
459
转载 Android内存管理
文章转自:http://blog.youkuaiyun.com/qiujiwuhen00/article/details/47000153Android内存管理详细介绍时间 2013-05-13 16:06:32 优快云博客原文 http://blog.youkuaiyun.com/gemmem/article/details/8920039主题 Java 安卓开发尊重原创作者
2017-03-31 16:10:50
450
转载 获取屏幕真实高度
转自:http://blog.youkuaiyun.com/dacainiao007/article/details/21877717public int getScreentHeight() { int heightPixels; WindowManager w = this.getWindowManager(); Display d = w.g
2017-03-28 16:28:38
693
原创 ImageView自动释放bitmap(有使用局限性)
Bitmap bitmap;@Overridepublic void setImageBitmap(Bitmap bm) { bitmap= bm; if(isDetached){//防止异步回调时 设置bm,可能异步回来的时候imageview已经执行了onDetachedFromWindow if(bitmap!= null && !bitmap.isRecy
2017-03-28 10:51:17
1724
原创 CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout、Toolbar混合使用经验
哎。。差点学崩溃了,好几个概念都搞混了,有些明白了,赶紧记录!尽量简单。CoordinatorLayout作为顶层布局,里面的组件可以设置behavior,有相关动作时可以进行处理。这里还是主要讲一些交互效果吧。情景就是这个页面有toolbar,中间有滚动视图,滚动时可以让toolbar的部分产生响应,再配合CollapsingToolbarLayout,附加一些折叠的效果。a
2017-01-12 17:32:12
477
原创 使用textswitcher进行切换动画
使用textswitcher进行切换动画android:id="@+id/tsLikesCounter"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="8dp"android:layout_marginRight="8dp"
2017-01-12 15:10:03
551
原创 toolbar的学习(二)一些交互效果的研究
还是边学边记录!1、我们有时会做一些先隐藏再显示的动画,一般用toolbar.setTranslationY(-100)隐藏起来,再用animator.translationy(0),进行动画显示。如果xml布局只有toolbar的话,一开始加载toolbar那里就是完全空的,等动画开始后,会背景色和toolbar上的内容一起动画下来。如果toolbar外层有一层appBarLayout的话,
2017-01-12 14:14:51
355
原创 toolbar的学习
当前使用的是api25,不知道和之前的有没有区别,下面开始一边学习一边记录。一般的介绍就不写了,很多文章都有写。先上一张主题说明图,网上都能搜到,贴过来自己mark下:/ 可以在apptheme中定义:style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> item name="c
2017-01-12 10:56:28
390
转载 AndroidStudio导入项目一直卡在Building gradle project info
AndroidStudio导入项目一直卡在Building gradle project info,实际上是因为你导入的这个项目使用的gradle与你已经拥有的gradle版本不一致,导致需要下载该项目需要的gradle版本,不知是被墙了还是什么原因,反正就是会一直卡住,直至下载完成(如果能下载完成的话,233)网上也提供了方法,就是去官网下载gradle的版本,然后放到本地,我就不在这里
2017-01-11 15:03:39
275
原创 FAB避让snackbar的原理 在api23和24下是不同的
这段时间主要用来掌握Material Design 的相关控件的学习,我是先在github上下载了一个示例,但是基本只有代码,没办法真正了解控件的对应使用方法及注意事项,所以我先从示例中了解到都有哪些比较好的控件,并且可以直观的看到控件所展现出来的用户体验,然后在google对应控件的教程来学习并加以理解。前期的任务是先了解各个控件的使用,后面会继续学习其源码。(博客是边学边写的。)C
2017-01-05 09:44:42
973
原创 利用注解规范参数传递
今天学习design,准备看下源码,其实自己很多东西都还不会,果然随便看到什么都觉得可以学习,大家闲时也可以多看看源码,尤其是官方的,很多第三方的源码写的都没有那么的“规矩”,大多以实现功能为主。下面就步入正题吧,其实文章名称我不太知道怎么起,主要是为了实现这个目的:比如你定义了个方法,里面的参数可以传1,2,3,(比如下拉刷刷新控件,只能设置顶部刷新、底部刷新、上下都可以刷新、都不可以刷新等几个
2016-12-07 11:16:28
1318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人