![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
再也不做的事
这个作者很懒,什么都没留下…
展开
-
Android 根据图片本地路径转Base64
android 图片转base64原创 2022-09-08 14:53:51 · 1219 阅读 · 2 评论 -
Jetpack Compose入门
Compose简介Compose 是用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,帮助您使用更少的代码、强大的工具和直观的 Kotlin API,快速打造生动而精彩的应用Compose 编程思想声明性编程范式:声明性的函数构建一个简单的界面组件,无需修改任何 XML 布局,也不需要使用布局编辑器,只需要调用 Jetpack Compose 函数来声明想要的元素,Compose 编译器即会完成后面的所有工作举例:显示一行文字class MainActiv原创 2022-04-16 11:02:49 · 409 阅读 · 1 评论 -
Android split分包和ndk abiFilters
splits{ // Configures multiple APKs based on ABI. abi{ // Enables building multiple APKs per ABI. enable true // By default all ABIs are included, so use reset() and include to specify that we only原创 2021-11-03 09:59:30 · 2607 阅读 · 1 评论 -
编译报错Runtime JAR files in the classpath should have the same version
这个是JDk 版本问题 可以使用jdk 1.8.0_131原创 2021-09-16 16:51:47 · 4745 阅读 · 0 评论 -
Android组件化
组件化创建一个app 作位壳工程。一个common library来写基础组件库,提供给module。创建module 模块。1.版本管理在根目录创建app_config.gradleext{//是否发布isRease=trueapp_android=[ compileSdkVersion:30, buildToolsVersion :"30.0.2", minSdkVersion :26, targetSdkVersion原创 2021-07-13 11:18:27 · 220 阅读 · 0 评论 -
Retrofit 在拦截器中加密url 并修改body 参数key-value
Retrofit 在拦截器中加密url 并修改body 参数key-value从一个蛋疼的需求说起:URI加密:jjj/ 后面的URI采用AES-CBC-pkcs5padding加密后再base64编码,然后jjj/ 换成xxxx/v2/,例: 原始URI:jjj/sms/login, 加密内容为sms/login,加密后的URI为xxx/v2/89HlYe0vil/lOl0hgFiK0Q==参数混淆: 在原来参数前面加上随机字符串,用3个下划线___连接。例:原始参数{"mobile":"12原创 2021-06-08 16:31:55 · 1340 阅读 · 0 评论 -
react-native AndroidRuntime: FATAL EXCEPTION: create_react_context
React-native Android 端报错新版本文件名已经从index.android.js变为了index.js;在项目根目录执行:根目录cmd运行命令:react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/ma原创 2021-05-18 14:35:09 · 857 阅读 · 0 评论 -
Android保存Bitmap到相册
fun saveMediaToStorage(context: Context,bitmap: Bitmap) { //Generating a file name val filename = "${System.currentTimeMillis()}.jpg" //Output stream var fos: OutputStream? = null //For devices running android >原创 2021-05-14 13:11:40 · 824 阅读 · 0 评论 -
Dialog封装使用
使用:BoxDialog boxDialog = new BoxDialog(this, view, BoxDialog.LocationView.CENTER, true);boxDialog.show()参数一:上下文对象参数二:view 布局参数三:dialog 要显示的位置参数四:是否全屏显示下载地址:原创 2021-05-06 11:41:43 · 104 阅读 · 0 评论 -
GitKarken下载安装
我们只需要找到安装目录删除update.exe 即可!如果快捷方式是update.exe 可以去app-6.5.1 中找到应用程序,生成快捷即可免费使用!下载地址:GitKarken 下载原创 2021-05-06 10:11:16 · 409 阅读 · 0 评论 -
Android 获取位置经纬度并转为地址信息
public class MLocationManager { @SuppressLint("MissingPermission") public static Location getLocation() { LocationManager locationManager = (LocationManager) MApplication.getInstance().getSystemService(Context.LOCATION_SERVICE); Str原创 2021-03-19 11:34:08 · 674 阅读 · 0 评论 -
Android图片压缩,压缩到几兆之内
实现突破压缩到1.5M 之内并上传:发现问题:压缩之后反正都是正常的,但是当调用BitmapFactory.decodeStream 转我bitmap时图片质量会变大!所以我就直接使用流转base64来上传避免转换导致图片变大:具体原因百度有! public static String compressImageBit(String url) { if (TextUtils.isEmpty(url)) { return null; }原创 2021-03-08 14:24:39 · 569 阅读 · 0 评论 -
Retrofit 上传文件
文件流的形式: @Multipart @POST("/upload") LiveData<ApiResponse<String>> voucherUpload(@Part MultipartBody.Part part);public LiveData<ApiResponse<String>> getVoucherUpload(LiveData path) { LiveData voucherData = Trans原创 2021-03-05 10:18:56 · 2153 阅读 · 2 评论 -
H5 内部唤起android App
场景:当我们使用H5推广的时候会存在一键打开App的功能!1.android原生端配置在清单文件入口的Activity 配置如下!<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/>原创 2021-02-24 15:40:11 · 900 阅读 · 0 评论 -
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: The currently
模拟器运行安装报错:Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: The currently selected variant "dangbei-debug" uses split APKs, but none of the 1 split apks are compatible with the current device with ABIs "x86".解决办法:在ap原创 2021-02-22 11:30:29 · 1155 阅读 · 0 评论 -
Duplicate class kotlinx.coroutines.AbstractCoroutine found in modules DataStore冲突解决
错误内容:Duplicate class kotlinx.coroutines.AbstractCoroutine found in modules kotlinx-coroutines-core-1.3.9.jar (org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9) and kotlinx-coroutines-core-jvm-1.3.9.jar (org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm原创 2021-01-22 18:56:15 · 1430 阅读 · 0 评论 -
FackBook Sdk 接入 获取keyhash 秘钥散列
1.首先下载下载OpenSSl下载 OpenSSL for Windows的Binaries版本, 如果下载不下,可下载现成的2.下载完解压到随便一个文件夹。找到bin目录下的openssl.exe的路径例如:D:\openssl-0.9.8k_X64\bin\openssl3.打开CMD后台 输入keytool -exportcert -alias 此处为你的签名文件的别名 -keystore D:\app\keyfile.jks(此处为签名文件) | D:\openssl-0.9.8k_X64\原创 2021-01-05 15:35:26 · 170 阅读 · 0 评论 -
WebView与Android方法互相调用
Android调用js首先设置webview支持JavaScrip WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true);2.使用loadurl 调用js方法webView.loadUrl("javascript:mMethord()");也可以使用evaluateJavascriptif (version >= Build.VERSION_CODES.KIT原创 2020-10-09 14:30:24 · 944 阅读 · 0 评论 -
Android小技巧(全局Dialog,adb install)
Android1.android不依赖具体activity弹出Dialog对话框,即全局性对话框.在创建Dialog时添加:dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);并在AndroidManifest.xml中添加:<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />附加:1.SDK环原创 2020-10-09 10:24:09 · 413 阅读 · 0 评论 -
Android 获取文件真实路径
public class GetRealPath { public static String getFPUriToPath(Context context, Uri uri) { try { List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS); if (packs !原创 2020-09-14 14:35:55 · 2035 阅读 · 6 评论 -
Android面试整理资料(持续更新...)
Android面试整理Activity中的四种启动模式介绍前须知:任务栈用来存放用户开启的Activity。在应用程序创建之初,系统会默认分配给其一个任务栈(默认一个),并存储根Activity。同一个Task Stack,只要不在栈顶,就是onStop状态。 任务栈的id自增长型,是Integer类型。新创建Activity会被压入栈顶。点击back会将栈顶Activity弹出,并产生新的栈顶元素作为显示界面(onResume状态)。5.当Task最后一个Activity被销毁时,对应的应原创 2020-08-01 11:02:58 · 316 阅读 · 0 评论 -
Android实现MVVM+LiveData+ViewModel+Retrofit
Android实现MVVMMVVM简介:MVVM(Model-View-ViewModel) 是由Mvp演变而来。View包含Ui布局,以及布局生命周期控制器(Activity,Fragment)DataBinding实现view层与viewModel数据的双向绑定(但实际上在Android Jetpack中DataBinding只存在于布局和布局生命周期控制器之间,当数据变化绑定到布局生命周期控制器时再转发给ViewModel,布局控制器可以持有DataBinding但ViewModel不原创 2020-07-28 16:11:11 · 4932 阅读 · 1 评论 -
迁移Androidx app.FragmentManager.isDestroyed() on a null object
迁移AndroidX fragment报错:解决方法:project.configurations.all { //resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds' resolutionStrategy.eachDependency { details -> def requested = details.requested if (requested.g原创 2020-06-19 17:31:38 · 1063 阅读 · 1 评论 -
Android9.0 http网络请求适配方案
背景: 由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。场景: 如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求,如果 WebView 的 url 用 http 协议,同样会出现加载失败,https 不受影响。解决方案1:1:在 res 下新建一个 xml 目录,然后创建一个名为:network_secur...原创 2020-05-07 14:20:41 · 926 阅读 · 0 评论 -
FlowLayout 打造流式布局,实现热门推荐
** * 打造实现流式标签 */public class FlowLayout extends ViewGroup { private static String TAG = "FlowLayout"; private setItemClick setItemClick; //自定义属性 private int LINE_SPACE; private原创 2017-12-27 11:05:43 · 337 阅读 · 0 评论 -
Android 实现微信,QQ文件在其他应用打开并获取到路径
例如:1.想实现其他应用打开出现自己的应用,需要在清单文件中增加配置 <!--docx--><intent-filter tools:ignore="AppLinkUrlError"> <action android:name="android.intent.action.VIEW" /> <category android:name="a...原创 2020-05-07 11:53:33 · 3850 阅读 · 18 评论 -
Android 跳转到应用设置详情界面
跳转到应用设置界面public static void toSelfSetting(Context context) { Intent mIntent = new Intent(); mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT >= 9) { ...原创 2018-06-13 11:34:17 · 10803 阅读 · 1 评论 -
Android 插件化,qihoo360插件方案。集成简单实用方便,兼容性高
Android 插件化,qihoo360插件方案 目录Android 插件化,qihoo360插件方案 宿主App插件化: 插件App插件配置: 宿主调用插件App: 新建一个项目,开始配置 宿主插件化配置: 在项目的根目录build.gradle中配置 classpath 'com.qihoo360.replugin:replugin-host-g...原创 2018-07-26 13:53:17 · 1543 阅读 · 0 评论 -
Android打包apkSTRING at line 1 column 99 path $[0].apkInfo.versionName
Android打包apkSTRING at line 1 column 99 path $[0].apkInfo.versionNameandroid打包apk报错:如果报:Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a name but was STRIN...原创 2018-12-20 17:47:51 · 708 阅读 · 0 评论 -
高斯模糊实现毛玻璃效果
首先需要导入依赖:compile'com.github.bumptech.glide:glide:3.7.0'compile'jp.wasabeef:glide-transformations:2.0.1'然后在代码中:Glide.with(this).load(R.drawable.placeholder_avatar) .bitmapTransform(n原创 2017-11-02 18:32:39 · 1610 阅读 · 0 评论 -
Android 求时间差
SimpleDateFormat formats = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//获取当前时间String curDate = year+"-"+month+"-"+days+" "+hours+":"+minutes+":"+milines;//时间格式化Date dateCurrent = formats.pars原创 2017-07-24 11:53:10 · 649 阅读 · 0 评论 -
Andoid实现顶部导航栏和底部导航滑动隐藏(BottomNavigationView,CoordinatorLayout)
首先这个效果需要引入design:compile 'com.android.support:design:26.+'在布局文件中:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=...原创 2018-04-27 09:44:52 · 6412 阅读 · 1 评论 -
自定义带返回按钮的标题
1,项目中基本每个页面都要用到返回按钮以及标题,每次使用每次写就变的很麻烦,也没有必要,所以今天要自定义一个TitleView方便使用。首先,要写个布局文件:里面放一个返回按钮以及一个标题<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/ap...原创 2018-04-25 14:41:12 · 638 阅读 · 0 评论 -
Android webview 播放视频无法播放以及可以播放预览图为加载不出来
Android webview 播放视频无法播放以及可以播放预览图为加载不出来的解决方案1,webView的配置工作:WebSettings webSettings = shopWebView.getSettings();webSettings.setBlockNetworkImage(false);webSettings.setLoadWithOverviewMode(true);...原创 2018-03-16 10:57:15 · 3587 阅读 · 0 评论 -
Android 判断是否有空格
/** * 包括空格判断 * @param input * @return */ public static boolean containSpace(CharSequence input){ return Pattern.compile("\\s+").matcher(input).find(); }}原创 2017-07-26 14:30:47 · 3857 阅读 · 0 评论 -
Android 倒计时
1,写一个倒计时的内部类,来实现计时功能*定义一个倒计时的内部类*/ class MyCount extends CountDownTimer { public MyCount(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInte原创 2017-07-18 09:01:58 · 235 阅读 · 0 评论 -
Android xml布局中设置颜色透明度
百分比-开头字母–> 100% —FF–> 95% — F2–> 90% — E6–> 85% — D9–> 80% — CC–> 75% — BF–> 70% — B3–> 65% — A6–> 60% — 99–> 55% — 8C–> 50% — 80–> 45% — 73–> 40% —原创 2017-07-26 11:45:49 · 6581 阅读 · 2 评论 -
Android 输入手机号有空格
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) {原创 2017-08-10 13:43:21 · 1182 阅读 · 0 评论 -
Android分包MultiDex trouble writing output:Too many field references: 131000; max is 65536.You may try
trouble writing output:Too many field references:131000;max is 65536.You may tryusing--multi-dex option.当报这些错误的时候,说明你引入的方法超过65536这个限制:解决方案:1,直接在Gradle中的defaultConfing中添加multiDexE原创 2017-07-25 16:06:38 · 374 阅读 · 0 评论 -
Android Toast自定义
自定义Toast的使用:首先在Gradle:添加:allprojects { repositories { maven { url "https://jitpack.io" } }}compile 'com.github.GrenderG:Toasty:1.2.5'public void toast_show(View view) { swit转载 2017-07-21 14:55:35 · 416 阅读 · 0 评论