![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓
meimeiqian
这个作者很懒,什么都没留下…
展开
-
Android 线程问题
1.设置子线程的优先级必须在当前子线程中设置 Thread thread = new Thread(){ @Override public void run(){ Process.setThreadPriority(Process.THREAD_PRIORITY_LOWEST); } }; thread.start();2.获取线程id使用android.os.Process.原创 2021-06-22 13:59:24 · 365 阅读 · 0 评论 -
申请Menifest中声明的全部权限
private fun requestAllPermission () { try { val packageInfo = packageManager .getPackageInfo(packageName, PackageManager.GET_PERMISSIONS) val permissions = packageInfo.requestedPermissions ...原创 2021-05-20 15:04:29 · 173 阅读 · 0 评论 -
gradle插件使用javassist修改父类不成功的问题
在android studio中写gradle插件,使用javassist修改一个类的父类时,使用常规的方法 CtClass rejectedActivity = pool.get(baseActivityClassName); rejectedActivity .setSuperclass(newSuperActivityClass);不起作用,然后加上使用replaceClassName方法才行,示例如下: String oldSuperClass = rejectedActiv原创 2021-04-05 13:10:40 · 409 阅读 · 0 评论 -
“Enable advanced profiling“引发的Okhttp发送请求异常
1.在使用okhttp发请求是,总是报close异常,debug,发现OkHttpClient的networkInterceptors多了个 OkHttp3Interceptor (com.android.tools.profiler.agent.okhttp),google了一下,才知道,是因为在Edit Configurations中开启了“Enable advanced profiling”,去调这个设置就可以了。Edit Configurations -> Profiling, and d原创 2021-04-02 19:59:36 · 268 阅读 · 0 评论 -
androidstudio R8编译增加throw null
在一个项目中,突然发现编译release包之后,安装启动报Application构造方法抛空指针异常,反编译dex,确实发现在Application的构造方法和所有生命周期方法的最后都加了throw null,因为配置了 buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'pro原创 2021-03-10 09:36:45 · 548 阅读 · 0 评论 -
给seekbar换颜色
fun customProgressBar(accentColor:Int) { var progressDrawable = context.resources.getDrawable(R.drawable.lib_video_preview_progress_bg) as LayerDrawable progressDrawable.colorFilter = PorterDuffColorFilter(accentColor, PorterDuff.Mode.S...原创 2021-03-03 13:33:29 · 262 阅读 · 0 评论 -
Android 全屏和取消全屏
// 全屏。包括隐藏虚拟导航栏 open fun fullScreen(){ val uiOptions = (//0x00000008 or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_STABLE原创 2021-03-02 16:06:42 · 1339 阅读 · 0 评论 -
Android handler.removeMessages(0);会取消handler.post的消息
当调用handler.post()或者handler.postDelayed方法时,追踪源码,实际上public final boolean postDelayed(Runnable r, long delayMillis){ // 实际上调用的还是sendMessage return sendMessageDelayed(getPostMessage(r), delayMillis);}// 获取Message,此时Message的What=0private static Me原创 2021-02-20 10:11:01 · 809 阅读 · 0 评论 -
Android利用Looper机制实现在子线程中依次执行耗时任务
在做自定义相册时,需要获取视频文件的播放时间,利用以下方法获取:@JvmStatic fun getMediaTime(path: String?): Int { val mediaPlayer = MediaPlayer() try { mediaPlayer.setDataSource(path) mediaPlayer.prepare() var duration = mediaPlaye原创 2020-08-14 18:23:50 · 837 阅读 · 0 评论 -
Diaglog横向全屏
dialog想改变默认宽度,横向全屏,要在show之后,修改Attributes,其中getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));必不可少,不加此行,DecorView会有padding,横向一直不能铺满屏幕 Window window = getWindow(); WindowManager.LayoutParams lp = window.getAttributes(原创 2020-07-01 16:09:07 · 221 阅读 · 0 评论 -
Livedata建立observe时,抛Cannot add the same observer with different lifecycles的问题
如果一个activity,在onCreate的时候建立Livedata监听,当此activity启动两遍的时候,会抛出Cannot add the same observer with different lifecycles异常,原因是使用了lamda表达式public class MyActivity extends AppCompatActivity { public void onCreate(Bundle savedInstanceState) { super.onCr原创 2020-06-12 16:51:58 · 8619 阅读 · 2 评论 -
自定义键盘怎么避免预览特殊按键以及监听返回键的问题
继承了KeyboradView,写了一个自定义键盘,以dialog的形式弹出,解决两个问题1.使用DialogFragment,在onStart中,定义dialog的属性,使其像系统输入法一样的特性,即不获取焦点,可以点击下面的activity界面open class KeyboardDialog : BaseDialogFragment() { private var mContentView: View? = null; override fun onAttach(context:原创 2020-05-21 09:45:32 · 242 阅读 · 0 评论 -
java和kotlin的Builder模式的继承
在android开发过程中,经常会使用builder模式来设置属性,但是有时候会有存在继承关系,用以下方式解决:1.java双重继承 示例public class AlertDialog extends BaseDialog { protected BaseBuilder<Builder> mBuilder; protected void setBuilder(Ba...原创 2020-04-22 13:32:29 · 755 阅读 · 0 评论 -
android studio 自定义本地使用的Pmd 的gradle插件
1.在project 下新建目录 buildSrc,会自动生成.gradle文件夹.2.新建build.gradleapply plugin: 'java-library'//use groovy libraryapply plugin: 'groovy'sourceSets { main{ groovy{ srcDir 'src/main/g...原创 2020-03-27 09:31:04 · 677 阅读 · 0 评论 -
分析hprof文件
1.cmd 进入D:\AndroidSDK\platform-tools> 目录,下面有hprof-conv.exe,执行命令D:\AndroidSDK\platform-tools>hprof-conv memory-20191106T171841.hprof heap-converted.hprof把android格式的转为标准的hprof文件。然后执行jhat -J-X...原创 2020-03-26 19:22:22 · 2379 阅读 · 0 评论 -
okhttp3.14.x 上传不存在的文件后,再上传文件400
增加NetworkInterceptor,如下/** * 解决在okhttp3的3.14.x版本,当上传不存在的文件时,再重新上传存在的文件,okhttp还复用上次的连接,但是 * 上次的连接中已经write了部分数据,此脏数据导致发生400错误 * * */public class RemoveDirtyConnIntercepter implements Interceptor ...原创 2019-12-30 18:31:11 · 443 阅读 · 0 评论 -
当ScrowView嵌套listView加载完数据后列表自动滚动到最顶端的问题
当ScrowView嵌套listView时,而且在listview上端还有内容的时候,导致listview加载完数据后,自动滚动到最顶端的问题,以下是解决方案,即在外层再加一个LinearLayout ,就能解决,以下是实例<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:原创 2017-02-16 12:56:14 · 1160 阅读 · 0 评论 -
android studio 引入系统库的代码全部变红,编译还能成功的解决办法
在一次android studio 卡住不动的时候,直接杀死其进程关闭,导致再启动后,代码中引入的系统库的import 等都变红,但是编译还能成功,从别处看到一个处理的方法,点击File-弹出选择第一个,然后androidstudio自动重启,重启之后,耐心等耐编译即可原创 2017-03-01 16:12:38 · 2955 阅读 · 0 评论 -
android 编译SDK
在做一个MTK的系统项目中,为了方便开发,需要编译一下SDK,现记录一下编译SDK遇到的问题1.source build/envsetup.sh 2.lunch [product_name] 3. source build/envsetup.sh 4.make sdk 注意,第三步如果缺失,会报错device/mediatek/build/build/libs/custom.mk:160:原创 2017-03-03 09:46:42 · 2939 阅读 · 0 评论 -
TextView 固定背景图片不随文字变长而变长
textview 背景图片固定宽高原创 2017-04-20 14:22:02 · 1347 阅读 · 0 评论 -
.9图片设置不拉伸的区域被拉伸的问题
今天才发现,.9图片如果不放到对应相应级别的资源目录下,设置的不被拉伸的部分也会被拉伸,例如,.9图片放到drawable目录下,上面的图片是正常,下面的图片的透明边缘被拉伸 下图是.9图片的制作 如果把.9图片放到drawable-nodpi中,并当做背景图使用,则在layout的预览中会看不到上层的view,在真机中能看到,把.9图片放到当前真机对应的drawable-xhdpi中,原创 2017-09-07 09:44:15 · 3284 阅读 · 1 评论 -
android gradle makejar配置
task makeJar(type: Jar, dependsOn: ['compileReleaseJavaWithJavac']) { destinationDir = file('build/libs/jar/') appendix = "jar" // SDK的后缀名称 baseName = "sdkname" // SDK名称 version = 1.0原创 2017-12-15 14:41:26 · 2036 阅读 · 0 评论 -
androidstudio 引用外部工程
1.引用外部module在 settings.gradle中添加project(':outer').projectDir = new File(settingsDir, '../../outer')include 中追加':outer'2.引用外部文件在build.gradle中添加sourceSets { main {原创 2017-12-15 14:42:41 · 1507 阅读 · 0 评论 -
代码设置style
ContextThemeWrapper contextThcemeWrapper = new ContextThemeWrapper(getContext(),R.style.menu);TextView textView = new TextView(contextThcemeWrapper);//修改contextThcemeWrapper.setTheme(R.style.tes...原创 2019-08-28 14:13:00 · 504 阅读 · 0 评论 -
来自官方的Android数据绑定(Data Binding)框架②
原文地址:http://blog.chengyunfeng.com/?p=735&utm_source=tuicool&utm_medium=referral数据对象任何的POJO 对象都可以用作数据绑定,但是修改一个 POJO 对象不会更新 UI。 数据绑定的威力在于,赋予数据对象在数据改变的时候通知其他组件的能力。有三种数据改变通知机制:Observable 对象、Obse转载 2016-11-19 23:07:47 · 281 阅读 · 0 评论