+ 我要发布
我发布的 我的标签 发现
公开标签 #Android开发
Android 应用可在其 build.gradle 文件中设置多项 SDK 版本属性。Android build.gradle 文档说明了这些属性对于应用的一般含义。本文档介绍了这些属性如何影响 NDK build。 compileSdkVersion 此属性对 NDK 构建没有任何影响。NDK 的 API 可用性受 minSdkVersion 约束。这是因为 C+符号应在库加载时被即时解析,而不是延迟到首次调用时解析(像在 Java 中一样)。如果在 minSdkVersion 中使用任何不可用的符
解决方案: 将 gradle.properties 文件中以下内容删除 systemProp.https.proxyPort=1087 systemProp.http.proxyHost=127.0.0.1 systemProp.https.proxyHost=127.0.0.1 systemProp.http.proxyPort=1087 注意,该 gradle.properties 不是项目下的 gradle.properties 文件。 Windows位置: C:\Users\Administra
为什么要给Android应用程序签名? 拿到一个应用的安装包,能够知道作者是谁。 当应用更新时,能够检测是不是作者本人提交的。 应用中的部分文件遭到修改时,能够检测到是否为作者本人做出的修改 为了实现上述目的,Android就引入了签名这种比较成熟的方法。 可以使用jdk自带的签名工具jarsigner来签名,但是jarsigner只支持v1签名,为了满足各个版本的需要,只有v1签名是不够的,有些应用市场对于只有v1签名的应用不提供上线和更新支持。 android studio自带的apksigner支
禁止了Android studio默认插件,这个插件是默认安装的, 禁止后重启导致启动失败。当报改错时,不需要重新安装Android studio。 解决方案: 找到根目录下的 disabled_plugins.txt 文件,把里面带有 org.jetbrains 开头的行删除即可。 disabled_plugins.txt文件路径 MAC: /Users/你的用户名/Library/Application Support/Google/AndroidStudio2022.1/disabled_plug
1,implementation和compile之间的区别 使用implementation时,包之间的依赖是不可以传递的,但是compile是可以传递的 2,google为什么要把compile改成implementation 使moudle之间解耦,不相互依赖。 组件化,单个moudle是可以直接运行的,如果单独运行moudle-prod模块,使用的是compile,编译时app moudle需要重新编译,但使用implementation,app moudle就不会编译了,这样间接提高了编译速度。
要添加 SwipeRefreshLayout 的依赖项,您必须将 Google Maven 代码库添加到项目中。 Groovy/Kotlin dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" }
将targetsdk升级到34后报错 Execution failed for task ':app:processHuaweiDebugMainManifest'. > Manifest merger failed : android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit valu
近期在测试时,猛然发现一些地方的Toast居然没有显示出来。于是开始了问题排除和溯源。 初步探索 首先,并不是所有地方的Toast都不能正常弹出。于是我开始查找代码,看不正常的地方有什么特殊之处。然后发现,不能正常弹出的地方都是这样写的: toastInfo("Toast内容") finish() 尝试把finish去掉,Toast显示了;把finish移到调用Toast前,Toast也显示了。好吧,把所有这样调用的地方修改一下,问题解决! 但是这样并没有找到问题的根本原因,要改的地方比较多且易漏,而且
基于 无障碍 高级选择器 订阅规则 的自定义屏幕点击 Android APP。‘ 功能 基于 高级选择器 订阅规则 快照审查, 它可以实现: 点击跳过任意开屏广告/点击关闭应用内部任意弹窗广告, 如关闭百度贴吧帖子广告卡片/知乎回答底部推荐广告卡片 一些快捷操作, 如微信电脑登录自动同意/微信扫描登录自动同意/微信自动领取红包 可实现: 微信自动领取红包 关闭微信朋友圈广告 关闭酷安字节 SDK 广告 关闭贴吧开屏广告及内部广告
错误提示: Please remove usages of `jcenter()` Maven repository from your build scripts and migrate your build to other Maven repositories. This repository is deprecated and it will be shut down in the future. See http://developer.android.com/r/tools/jcen
有时第三方平台需要我们提供apk安装包应用签名的md5值,我们可以通过以下方法来获取自己应用签名的md5值。 1,下载签名生成工具 该应用签名生成工具由腾讯开发,仅用于获取应用的签名。 下载地址: https://res.wx.qq.com/wxdoc/dist/assets/media/Gen_Signature_Android.e481f889.zip 2,安装签名生成工具 下载完成后,解压zip包,将解压后的apk包上传到自己的手机上(可使用桌面版qq上传到“我的手机”) 安装上传至手机的apk包
这个库用MediaCode和OpenGL实现了HDR和SDR转换,如果你觉得有所收获,给这个库点个赞吧,你的鼓励是我前进最大的动力。 HDR和SDR转换是为了解决以下问题: 1,播放流程,不是所有手机都支持HDR屏幕会导致视频变灰,需要转换成SDR视频 2,编辑流程,HDR和SDR混合编辑时,要不HDR转SDR,要不SDR转HDR,不然会出现色差 现有功能实现如下,供大家一起学习一起上进: 1,输出模式(直接输出到Surface、经过OpenGL中转) 2,视图模式(无缝切换SurfaceView和Te
使用 Android Studio 开发时,在 build.gradle 中会用到 compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion,它们是什么意思呢? 1、CompileSdkVersion是你SDK的版本号,也就是API Level,指定了Gradle编译你的App时使用的Android API版本。 2、buildeToolVersion是你构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于s
Android开发中,可以通过 RotateAnimation 设置控件的运动状态。先看一段代码: RotateAnimation animation = new RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); animation.setDuration(3000); #3000毫秒旋转一周 animation.setRepeatCount(Animation.I
ThreadPoolExecutor线程池用于管理线程任务队列、若干个线程。 1、ThreadPoolExecutor构造函数 ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue) ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keep
Android开发时,一个ImageView控件使用了动画效果,id是R.id.loading。 但在开发中使用Animation后,setVisibility(View.GONE)无效。 解决方案: findViewById(R.id.loading).clearAnimation(); findViewById(R.id.loading).setVisibility(GONE);
Android开发时经常会用到软键盘,当软键盘弹出顶起当前布局是常见的问题。 如何解决软件盘导致的页面布局被打乱的问题呢? 先了解下软键盘和 Activity 的几个交互模式(windowSoftInputMode): 1,stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置 2,stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 3,stateHidden:用户选择activi
使用各种系统参数来判断,很多机型的判断结果会有问题。 可使用另外一个办法来判断:获取当前页面根节点距离屏幕顶部的距离,和当前屏幕可用高度进行对比。 1,获取当前页面根节点距离屏幕顶部的距离: View rootView=getView(R.id.root); Rect rect = new Rect(); rootView.getGlobalVisibleRect(rect); int rootViewY=rect.bottom; 2,当前屏幕可用高度: int screenHeightPx=conte
方案1:使用 scrollTo 或 smoothScrollTo 滚动到 scrollview 最后一个节点位置 public static void scrollToBottom(final View scroll, final View inner) { Handler handler = new Handler(); handler.post(new Runnable() { public void run() { int offset = inner.getMeasuredHeight() -
Android开发中,当输入 emoji 后提交到数据库,如果内容中含有空格,编码后空格会变成加号,当android重新加载时,就会出问题。 在提交到数据库钱,将文本内容经过 urlencode 编码,采用utf8格式。 了解下 urlencode 和url,就知道为什么会有空格变+号的问题了。 一个URL的基本组成部分包括协议(scheme),域名,端口号,路径和查询字符串(路径参数和锚点标记就暂不考虑了)。路径和查询字符串之间用问号?分离。例如http://www.example.com/index
在 resources 的 dimen 中定义了字体大小,通过代码赋值 view.setTextSize(R.dimen.fontsize) 通过这种方法赋值的字体大小和预期的并不相符,原因是 setTextSize()方法中的字体单位是 sp,而通过 R.dimen 获取的字体单位是px 如果要得到预期的字体带下,setTextSize 传参单位必须是 sp 注意: Paint.setTextSize() 参数单位 px TextView.setTextSize() 参数单位 sp TextView.
在 res/drawable 目录下新建光标样式文件 my_cursor.xml,自定义光标样式如下: <shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android"> <size android:width="2dp" /> <solid android:color="@color/black"/> </shape> 如果只是修改单个edittext的光标样式,在edittext里添
如果只是在 EditText 或其父级view里设置如下属性: android:focusable="true" android:focusableInTouchMode="true" 并不一定能获取到焦点 建议直接在代码里进行设置: edittext.requestFocus()
Android系统的重复规则RRULE(RecurrenceRule)属于calendar属性中的一个,配合dtstart可以完整描述一个事件的重复行为并计算出重复事件的具体发生。 重复规则RRULE包含多个属性,每个属性以NAME=VALUE对的形式存在,属性与属性之间用分号区分,属性之间没有特定的顺序要求,在同一个重复规则中每个属性最多只能出现一次。 FREQ FREQ属性表示重复规则的类型,是重复规则中必须定义的一条属性。可选的VALUE有: SECONDLY,表示以秒为间隔单位进行重复。 MIN