
android开发
阿勾勾
我曾经有一个梦想
和朋友们在哪欢聚一堂
展开
-
Android 判断字符是否为数字+字母
Android 判断字符是否为数字+字母原创 2024-07-24 11:50:59 · 254 阅读 · 0 评论 -
Android 保存 list 数据到 Excel 文件的方法
1、build.gradle 中引入第三方库。2、封装一个工具类 ExcelUtil。3、使用,启动一个线程保存文件。原创 2022-08-10 12:14:23 · 2443 阅读 · 0 评论 -
adb 导出 Android 文件
在电脑 cmd 中输入:adb pull /sdcard/123.txt C:\Users\ffvll\Desktop\123.txt。手机文件路径:/storage/emulated/0/123.txt。导出文件一定要使用 adb pull 命令,不可以用 adb shell 命令。原创 2022-08-04 10:46:44 · 7711 阅读 · 1 评论 -
ProcessPhoenix使用方法 Android应用报错自动重启的方法
使用ProcessPhoenix库原创 2022-08-02 12:16:50 · 3813 阅读 · 0 评论 -
SharedPreferences 存储 ArrayList 自定义类
SharedPreferences 存储 ArrayList 自定义类,SPUtils 工具类原创 2022-07-03 03:02:11 · 2189 阅读 · 0 评论 -
Andoridx 使用技巧
Androidx FileProvider配置使用以及Androidx 与support 共存方法原创 2022-07-02 18:20:33 · 3046 阅读 · 0 评论 -
Android:exported 属性知识
1、android:exported 是 Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。2、android:exported 代表是否能被其他应用隐式调用。3、true允许被启动,false不允许被启动。4、android:exported 默认值是由有无intent-filter决定的,如果有intent-filter,默认值为true,否则为false。5、android:exported = false的情况下,这原创 2022-02-24 11:33:14 · 27728 阅读 · 0 评论 -
已安装的 Win11 安卓子系统突然无法启动解决办法
今天开发遇到一个奇怪的问题:可以正常启动WindowsSubsystem for Android,但是启动子系统,点击管理开发人员设置无反应解决办法:1、设置 – 应用 – 应用和功能 –Windows Subsystem for Android – 右上角选择 高级选项2、在重置项中选择 – 重置...原创 2021-11-26 11:53:19 · 14297 阅读 · 2 评论 -
Android moudle库使用aar的方法
1、在moudle库(例如:testLib) build.gradle 中添加: repositories { flatDir { dirs 'libs' } }2、在主工程 build.gradle 中添加: repositories { flatDir { dirs 'libs', '../testLib/libs' } }3、在moudle库原创 2021-09-16 16:04:21 · 2180 阅读 · 0 评论 -
Android 本地分享 Assets 中的图片
1、申请文件读写权限2、 Intent shareIntent = new Intent(Intent.ACTION_SEND); String imagePath = "file:///android_asset/xx.png"; InputStream is = activity.getAssets().open(imagePath); String iPath = Environment.getExternalStorageDirector原创 2021-07-07 17:21:12 · 2189 阅读 · 1 评论 -
Parcel: unable to marshal value 解决方法
Parcel: unable to marshal value 异常 通常出现在两个 Activity 传递 Lis t时。解决办法:自定义的 javaBean implements Serializable具体代码:javaBean:public class xxxBean implements Serializable {}第一个 Activity Intent 传递方法: private List <xxxBean> checkedList = new A原创 2021-06-25 13:22:47 · 4817 阅读 · 0 评论 -
JAVA 时间转换 时间增加
/* * 将时间转换为时间戳 */public String dateToStamp(String time) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = simpleDateFormat.parse(time); long ts = date.getTime(); return .原创 2021-06-25 13:15:51 · 1946 阅读 · 0 评论 -
Android JNI 校验APP本地签名MD5
1、新建一个.cpp文件#include <jni.h>#include <string.h>#include <android/log.h>#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, "DsvUtil", __VA_ARGS__)const char HexCode[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',原创 2021-05-18 14:16:43 · 2704 阅读 · 0 评论 -
Android Java 获取APP签名MD5
public static String getMD5(Context context) { StringBuffer md5StringBuffer = new StringBuffer(); try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNA...原创 2021-05-18 14:11:33 · 2665 阅读 · 0 评论 -
Android 代码设置 Tablayout 中的Tab充满屏幕
mTabLayout.setTabMode(TabLayout.MODE_FIXED);mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);原创 2021-03-19 10:46:24 · 2916 阅读 · 0 评论 -
自定义控件实例化后报空指针异常 java.lang.NullPointerException
自定义控件 findViewById()实例化后报空指针异常,原因是可能是在主布局中使用了子布局。findViewById()方法的原本的形态是 view.findViewById(),这个 view 是经过 setContentView() 方法设置的 layout 文件,所以 id 查找范围是当前的 Activity。当在一些主布局的子布局中,需要用 view.findViewById() 才行,要不然就会报空指针错误。因此在调用时,添加布局名,形式如下:addLayout.findV...原创 2021-01-26 11:01:08 · 2312 阅读 · 0 评论 -
Android 自定义View findViewByid 如何传递参数
主要步骤:1、使用 findViewByid 获取到实例2、创建set方法,名称自定义,参数自定义示例:public class BarView extends RelativeLayout { private ImageView leftBtn; public BarView(Context context) { this(context, null); } public BarView(Context context, Attri原创 2021-01-20 11:21:53 · 2345 阅读 · 0 评论 -
Android 仿微信小程序 NavigationBar 按钮
1.布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar_layout_shape" android:layout_width="match_parent" android:layout_height="match_parent"&原创 2021-01-11 11:36:08 · 2390 阅读 · 1 评论 -
Android 动态加载布局后设置控件属性
//加载布局LayoutInflater.from(context).inflate(R.layout.navigation_bar_layout, this);//寻找控件LinearLayout lvNavigationBar = findViewById(R.id.navigation_bar_lv);RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) lvNavigationBar.getLayoutPar.原创 2021-01-08 11:51:18 · 2114 阅读 · 0 评论 -
Auto.js UI界面使用 console.show() 阻塞
解决办法:1、开启悬浮窗权限2、新建线程开启consoleui.layout( <vertical> <button id="btn" text="测试"/> </vertical>);ui.btn.on("click", ()=>{ toast("我被点啦"); threads.start(function() { console.show(); }); conso原创 2020-12-23 16:07:26 · 6597 阅读 · 0 评论 -
Android10 获取视频文件Uri
private static Uri getVideoContentUri(Context context, File videoFile) { String filePath = videoFile.getAbsolutePath(); Cursor cursor = context.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Video.M.原创 2020-12-03 12:03:20 · 5547 阅读 · 0 评论 -
Auto.js 跳过APP的自启动允许唤醒权限,启动APP
需要root权限//替换掉 包名 和 Activityvar result = shell("am start -n 包名/包名 + .Activity", true);sleep(2000);if(result.code == 0){ log("启动APP 命令 执行成功");}else{ log("启动APP 命令 执行失败"); exit();}...原创 2020-11-13 16:45:46 · 5742 阅读 · 2 评论 -
Auto.js shell 安装APP方法
需要root权限if (files.exists("/storage/emulated/0/data/xxx.apk")) { var result = shell("pm install -r /storage/emulated/0/data/xxx.apk", true); sleep(1000); if(result.code == 0){ log("安装客户端 命令 执行成功"); }else{ log("安装客户端 命令 执行失原创 2020-11-13 16:41:53 · 4441 阅读 · 1 评论 -
Android stuido 设置自动生成APK文件名
1、在APP的 build.gradle 中添加全局方法static def releaseTime() { return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT+8"))}2、在APP的 build.gradle 的 android 下添加使用代码:android { android.applicationVariants.all { variant ->原创 2020-11-13 12:02:52 · 2068 阅读 · 0 评论 -
华为 荣耀20 Andorid10 图片保存到相册 图片不刷新问题
1、首先判断机型 private static boolean isHONOR() { String manufacturer = Build.MANUFACTURER; if ("HONOR".equalsIgnoreCase(manufacturer)) { return true; } return false; }2、添加相册刷新的代码 if(isHONOR()原创 2020-11-13 11:58:07 · 3358 阅读 · 0 评论 -
Android 对 Canvas 的 save 和 restore 方法理解
在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法。onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布。在onDraw方法里,我们经常会看到调用save和restore方法: save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。 restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。save把当...原创 2020-10-16 10:21:05 · 2304 阅读 · 0 评论 -
解决 Android Bitmap 合成图片时 PNG透明背景 为黑色的问题
// 取得Resource 图片的Bitmap Bitmap vBitmap = BitmapFactory.decodeResource( this.getResources(), R.drawable.icon); // 建立Paint 物件 Paint vPaint = new Paint(); vPaint .setStyle( Paint.Style.STROKE ); //空心 vPaint .setAlpha( 75 ); // //canvas.drawBit...原创 2020-10-15 14:01:56 · 4358 阅读 · 0 评论 -
小米9 王者荣耀 获取金币/经验周上限 教程
设置教程:1、安装好 《王者荣耀》和《auto.js》app2、打开王者荣耀,进入游戏,进入 万象天工3、将 冒险玩法 添加到 快捷入口4、进入挑战,选择大师级别魔女回忆,更换阵容为三个射手,点击闯关5、进入闯关后,开启右上角自动模式6、打完后,退出游戏,启动脚本。//再来一次function zailai() { for (var i = 0; i < 2; i++) { click(1917, 1006); sleep(50.原创 2020-09-22 15:50:09 · 2353 阅读 · 0 评论 -
Android 保存 图片到SD卡
1、Android保存图片 /** * 保存图片到SD卡 * * @param bm 图片bitmap对象 * @param floderPath 下载文件保存目录 * @param fileName 文件名称(不带后缀) */ public static void saveImg(Bitmap bm, String floderPath, String fileName) throws IOExceptio原创 2020-09-21 16:44:35 · 2705 阅读 · 0 评论 -
Android 创建 文件 和 文件夹
1、定义常量public static final int FLAG_SUCCESS = 1;//创建成功public static final int FLAG_EXISTS = 2;//已存在public static final int FLAG_FAILED = 3;//创建失败2、创建单个文件 /** * 创建 单个 文件 * * @param filePath 待创建的文件路径 * @return 结果码 */原创 2020-09-21 16:43:37 · 4459 阅读 · 0 评论 -
小米9 Toast会显示应用名 Android10
解决办法:Toast分开写:Toast toast=Toast.makeText(this,"",Toast.LENGTH_SHORT);toast.setText("输入");toast.show();一个很有意思的问题。原创 2020-08-27 16:56:15 · 2025 阅读 · 1 评论 -
GitLab :A default branch (e.g. master) does not yet exist for */*
Git 推送 代码时报错:A default branch (e.g. master) does not yet exist for */*问题原因:GitLab 项目权限设置错误在GitLab中改成最高权限即可原创 2020-08-18 15:21:23 · 10997 阅读 · 2 评论 -
为什么不再使用 Android MVVM
1、虽然MVVM 已经被实践证明是一种优秀的设计模式。能够很好地将 UI 、交互逻辑、业务逻辑和数据解耦。但是 MVVM 模式的运用,无非就是把代码分门别类写对地方而已,实际上也是封装思想的一种体现。2、MVVM 一般只用 ViewModel,LiveData,DataBinding 。编译起来坑比较多,不能复用 layout 。3、大多数场景下,自带的数据绑定足够了,还避免了很多 NPE 的坑。4、太复杂。...原创 2020-08-18 11:58:03 · 3573 阅读 · 3 评论 -
Android 弹出 Dialog 图片 居中
1、使用方法: /* * 弹出图片 */ private void showDialog(Context context,Bitmap bitmap){ Dialog dia = new Dialog(context, R.style.edit_AlertDialog_style); dia.setContentView(R.layout.dialog); ImageView imageView = (ImageView原创 2020-07-23 10:46:32 · 3393 阅读 · 0 评论 -
Android 使用 Retrofit 保存 高德 静态地图API 获取的地图图片
1、导入包api 'com.squareup.retrofit2:retrofit:2.3.0' // 必要retrofit依赖api 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' // 必要依赖,和Rxjava结合必须用到api 'com.squareup.retrofit2:converter-gson:2.3.0' // 必要依赖,解析json字符所用2、设置 LOCATION_URL ="https://restapi.amap.com.原创 2020-07-17 10:52:14 · 2428 阅读 · 0 评论 -
android 通知类 NotificationUtils
public class NotificationUtils extends ContextWrapper { private int notifyId = 1; private int smallIcon; private String title; private String content; private NotificationCompat.Builder builder; private NotificationManagerCompat n.原创 2020-07-16 16:41:28 · 2806 阅读 · 0 评论 -
com.github.tbruyelle:rxpermissions:0.10.2 报错
Android studio 导入rxpermissions 0.10.2 版本时报错: ERROR: Failed to resolve: com.github.tbruyelle:rxpermissions:0.10.2解决办法:使用排除法:1、修改 build.gradle,添加镜像地址和maven地址buildscript { repositories { maven { url 'https://maven.aliyun.com/reposito...原创 2020-07-15 16:10:06 · 13840 阅读 · 1 评论 -
获取Android APP 调试版及发布版 MD5 SHA1 SHA256码
1、获取发布版SHA1:在Android Studio的Terminal 中输入:keytool -exportcert -list -v -alias 你的包名 -keystore 正式发布版jks文件地址中文部分替换成你对应的信息。 输入密码获取。2、调试版SHA1在Android Studio的Terminal 中输入:keytool -exportcert -list -v -keystore 你的debug.keystore地址中文部分替换成你对应的信息。 key..原创 2020-07-15 10:35:08 · 2449 阅读 · 0 评论 -
Android 动态获取权限类 PermissionUtils
1、导入第三方库:api 'com.yanzhenjie:permission:2.0.3'2、使用Java8compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8}3、新建PermissUtils类:import com.yanzhenjie.permission.AndPermission;/** * An原创 2020-07-15 01:10:53 · 4320 阅读 · 0 评论 -
android.support.v4.content.FileProvider 报错的解决办法
AS3.6.1中会提示无法引用android.support.v4包这时需要将android:name="android.support.v4.content.FileProvider"修改为:android:name="androidx.core.content.FileProvider"原创 2020-07-15 01:06:43 · 11475 阅读 · 3 评论