Git Product home page Git Product logo

afkt / devutils Goto Github PK

View Code? Open in Web Editor NEW
1.3K 42.0 302.0 16.07 MB

:fire: ( 持续更新,目前含 300+ 工具类 ) DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。该项目尽可能的便于开发人员,快捷、高效开发安全可靠的项目。

License: Apache License 2.0

Java 80.36% Kotlin 19.64%
androidx permission bitmap snackbar activity reflect shell encrypt animation utils

devutils's Issues

截图工具类

CapturePictureUtils 截图工具类截图Recyclerview的时候 如果item 里面有自定义view+动画 截图下来动画初始值一直未0
请问这个有没有解决办法 谢谢
image

版本适配库

建议单独出一个库(如果有时间),毕竟版本适配对于小白各个方面不是很周到,需要一个傻瓜式的,可以按照file的api命名编写,无需其他使用成本,直接过渡,库内判断android版本,对于增删改查,移动复制删除,一条命令自动对应当前android版本执行适用于当前系统版本的命令,使用者只需按照之前的File的api使用,库内直接封装好各个版本的适配api

PermissionUtil禁止显示后,没有跳转到对应app权限列表

//PermissionActivity 内部activity

protected static void start(final Context context) {

        //源码
        Intent starter = new Intent(context, PermissionActivity.class);
        starter.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(starter);

        //可以修改为
        Uri packageURI = Uri.parse("package:" + AppUtils.getPackageName());
        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI);
        context.startActivity(intent);
    }

DateUtils.isInTimeHHmmss("7:00","7:00")

DateUtils.isInTimeHHmmss("7:00","7:00")返回false
如果startTime和endTime相同的话
startTime应该是为今天的时间 endTime应该为第二天的时间

1

老大,如题这个类好像找不到

SPUtils不好用

SPUtils总是报java.lang.ClassCastException,搞得都不知道到底存的啥,取得啥了!希望能改改~

AppUtils

建议增加代码【获取所有已安装的应用】和【获取所有 能够显示在 桌面上的 应用】
获取所有已安装的应用
private List<String> getInstalledPackages(Context context) { List<String> installedPackageList = new ArrayList<>(); List<PackageInfo> installedPackageInfoList = context.getPackageManager().getInstalledPackages(PackageManager.MATCH_UNINSTALLED_PACKAGES); for (PackageInfo packageInfo: installedPackageInfoList) { installedPackageList.add(packageInfo.packageName); } return installedPackageList; }

获取所有 能够显示在 桌面上的 应用
`private List getAllLauncherIconPackages(Context context) {
List launcherIconPackageList = new ArrayList<>();

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    //set MATCH_ALL to prevent any filtering of the results
    List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_ALL);
    for (ResolveInfo info: resolveInfos) {
        launcherIconPackageList.add(info.activityInfo.packageName);
    }

    return launcherIconPackageList;
}

`

DevEnvironment 的DevEnvironmentActivity 界面显示错误

复现步骤:
修改 多个alias
如 :
@module(alias = "IM 模块")
private class IM {

    @Environment(value = "https://im.release.com/", isRelease = true, alias = "线上@环境")
    private String release;

    @Environment(value = "https://im.debug.com", alias = "测试@环境")
    private String debug;
}

界面按照代码显示应该两个选项 ,会出现重复图中第三不应该出现 ;必须卸载app再次安装才能现在正常
image

ava.lang.Exception: Toast callstack!

设备是雷电模拟器4.0.68
安卓版本是25
使用 ToastUtils.showShort("跳过广告") 的时候报错

java.lang.Exception: Toast callstack! strTip=跳过广告
at android.widget.Toast.show(Toast.java:130)
at dev.utils.app.toast.ToastUtils.lambda$priShowToastText$0(ToastUtils.java:504)
at dev.utils.app.toast.ToastUtils$$ExternalSyntheticLambda1.run(D8$$SyntheticClass)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6161)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:892)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)

BitmapUtils 压缩有问题

/**
* 按质量压缩 ( 图片大小 )
* @param bitmap 待操作源图片
* @param maxByteSize 允许最大值字节数
* @return 质量压缩过的图片
*/
public static Bitmap compressByByteSize(final Bitmap bitmap, final long maxByteSize) {
return compressByByteSize(bitmap, Bitmap.CompressFormat.JPEG, maxByteSize, null);
}

/**
 * 按质量压缩 ( 图片大小 )
 * @param bitmap      待操作源图片
 * @param format      图片压缩格式
 * @param maxByteSize 允许最大值字节数
 * @return 质量压缩过的图片
 */
public static Bitmap compressByByteSize(final Bitmap bitmap, final Bitmap.CompressFormat format, final long maxByteSize) {
    return compressByByteSize(bitmap, format, maxByteSize, null);
}

FileUtils

如果可以的话,增加一个:是否拥有文件夹或文件读写的权限判断

项目贡献

Hello @afkT ,我对这个项目感兴趣,想为这个项目做出一些贡献,咱们这个项目接受贡献代码吗。

JSON to Code报错问题

image 输出的错误: Error: undefined is not an object (evaluating 'window.QuickType[methodName]')

你没看错,我又来了

我之前写了个工具类,就是通过包名,反射获取资源id,value,这个你要么,要的话我回头整理下发你,你塞里吧

发现demo在使用DevEnvironment过程中会出现如下问题 ,华为8.10 10.0.0 都有这个报错信息

在使用DevEnvironment ,发现demo再使用过程中会出现如下问题 ,华为8.10 10.0.0 都有这个报错信息 ,权限都已获取到;

java.io.FileNotFoundException: /data/user/0/afkt.project/cache/DevEnvironment/MODULE_MAP: open failed: ENOENT (No such file or directory)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at libcore.io.IoBridge.open(IoBridge.java:496)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at java.io.FileInputStream.(FileInputStream.java:159)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at dev.environment.DevEnvironment.readStorage(DevEnvironment.java:588)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at dev.environment.DevEnvironment.getMapEnvironment(DevEnvironment.java:395)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at dev.environment.Utils.getModuleEnvironment(Utils.java:116)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at dev.environment.AdapterItem.refreshHashCode(AdapterItem.java:75)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at dev.environment.DevEnvironmentActivity.onCreate(DevEnvironmentActivity.java:94)
2020-11-24 19:24:28.620 26996-26996/afkt.project W/System.err: at android.app.Activity.performCreate(Activity.java:8066)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.Activity.performCreate(Activity.java:8054)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1313)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3733)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3939)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2373)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.os.Handler.dispatchMessage(Handler.java:107)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.os.Looper.loop(Looper.java:213)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.ActivityThread.main(ActivityThread.java:8147)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at libcore.io.Linux.open(Native Method)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8015)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: at libcore.io.IoBridge.open(IoBridge.java:482)
2020-11-24 19:24:28.621 26996-26996/afkt.project W/System.err: ... 22 more

SharedUtils

com.github.afkT:DevUtils:1.7.6@aar

当下面三行同时执行

SharedUtils.put(“k”,v);
android.os.Process.killProcess(android.os.Process.myPid());
finish();

的时候,有时候数据是保存不成功的。
单单执行SharedUtils.put(“k”,v);是没问题的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.