一些杂七杂八的知识

1、配置 maven 本地依赖:

allprojects {
    repositories {
        google()
        mavenCentral()
        maven {
            url uri("file:///" + rootDir.absolutePath + "\\maven")
        }
    }
}

使用场景:某些依赖在当前环境的工程下由于网络问题找不到,但是在服务器的网络环境下可以使用,就可以将服务器环境下的 maven 依赖缓存拷贝到本地项目根目录下的 maven 文件夹,按照如上的配置,即可进行本地 maven 依赖。

2、快速打开 APN 设置界面

        try {
            Intent intent = new Intent("android.intent.action.MAIN");
            intent.setClassName("com.android.settings",
                    "com.android.settings.Settings$ApnSettingsActivity");
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            int subId = SubscriptionManager.getDefaultDataSubscriptionId();
            Log.e(TAG, "SubscriptionManager getSubId : " + subId);
            intent.putExtra(SUBSCRIPTION_KEY, subId);
            startActivity(intent);
        } catch (Exception e) {
            Log.e(TAG, "startActivity failed : " + Log.getStackTraceString(e));
        }

        注意如果是使用一个 Activity 运行上述代码,并且该 Activity 启动后立即结束,可以将该 Activity 主题属性设置为 android:theme="@android:style/Theme.Wallpaper.NoTitleBar" ,表示使用透明主题,否则界面跳转会出现空白界面。

3、修改Android Studio的缓存依赖到指定目录

image1.png

image2.png

重新sync项目,即可将 gradle 缓存依赖下载到指定目录。这样修改打开新的项目时默认的依赖位置也是在C盘下,可以设置系统环境变量GRADLE_USER_HOME为指定目录,这样新打开的所有项目默认依赖都会下载到该目录,要注意需要关闭所有android studio窗口,重启后才可生效。

4、遍历Android View树

    public void onCreate() {
        View rootView = getWindow().getDecorView().getRootView();
        rootView.postDelayed(()->{
            traverse(rootView, 0);
        }, 1000);
    }

    public void traverse(View view, int level) {
        String indent = "";
        for (int j=0;j<level;j++) {
            indent += "----";
        }

        if (view instanceof ViewGroup) {
            ViewGroup viewGroup = (ViewGroup) view;
            for (int i=0; i<viewGroup.getChildCount(); i++) {
                View child = viewGroup.getChildAt(i);
                Log.i(TAG, indent+level+"|-"+child);
                Log.i(TAG, indent+level+"|-getVisibility:"+child.getVisibility());
                Log.i(TAG, indent+level+"|-width:"+child.getWidth()+" height:"+child.getHeight());
                Log.i(TAG, indent+level+"|-getLeft:"+child.getLeft()+" X:"+child.getTranslationX());
                Log.i(TAG, indent+level+"|-getRight:"+child.getRight());
                Log.i(TAG, indent+level+"|-getTop:"+child.getTop()+" Y:"+child.getTranslationY());
                Log.i(TAG, indent+level+"|-getBottom:"+child.getBottom());
                traverse(child, level+1);
            }
        } else {
            Log.i(TAG, indent+level+"|-"+view);
            Log.i(TAG, indent+level+"|-getVisibility:"+view.getVisibility());
            Log.i(TAG, indent+level+"|-width:"+view.getWidth()+" height:"+view.getHeight());
            Log.i(TAG, indent+level+"|-getLeft:"+view.getLeft()+" X:"+view.getTranslationX());
            Log.i(TAG, indent+level+"|-getRight:"+view.getRight());
            Log.i(TAG, indent+level+"|-getTop:"+view.getTop()+" Y:"+view.getTranslationY());
            Log.i(TAG, indent+level+"|-getBottom:"+view.getBottom());
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容