欢迎使用优快云-markdown编辑器

Gröbner基方法入门第I部分:项序和约化 Gröbner基方法入门第I部分:项序和约化 理想的准素分解与矩阵分解是计算代数的核心问题,它们在计算机代数、计算代数几何、代数编码和密码学、多维系统理论等学科都有非常重要的理论意义与应用价值.Gröbner基理论是研究理想的准素分解与矩阵素分解的重要工具之一.更简单地概括:Gröbner基方法是从任意一个多项式理想的一组给定生成元,计算另一组性质良好的生成元,并称为该理想的Gröbner基.它能用来判定任意多项式是否属于该理想. Gröbner基的代数算法是Buchberger在1960年代开发的,并 阅读详情
1. DatePickerDialog和TimePickerDialog的onDateSet回调会执行两次的原因及解决方案。
//从源码中可以看出,tryNotifyDateSet在onStop中也调用了一次,所以会造成执行两次。

public void onClick(DialogInterface dialog, int which) {  
    tryNotifyDateSet();  
}  

@Override  
protected void onStop() {  
    tryNotifyDateSet();  
    super.onStop();  
} 

private void tryNotifyDateSet() {  
    if (mCallBack != null) {  
        mDatePicker.clearFocus();  
        mCallBack.onDateSet(mDatePicker, mDatePicker.getYear(),  
                mDatePicker.getMonth(), mDatePicker.getDayOfMonth());  
    }  
} 

解决方案:
1. 用标志位
2. 重写onStop方法

2. 系统的TimePicker设置最大值,用下面反射的方法只能精确到时分,并且兼容性不好,21以后可能不适用。
try {
            //分钟是mMinuteSpinner
            Field hourSpinnerField = timePicker.getClass().getDeclaredField("mHourSpinner");
            hourSpinnerField.setAccessible(true);
            NumberPicker hourSpinner = (NumberPicker) hourSpinnerField.get(timePicker);
            hourSpinner.setMaxValue(maxHour);
    } catch (Exception e) {
            e.printStackTrace();
    }
3. Fragment调用startActivityForResult ()不能收到回调onActivityResult()
  1. 确保用Fragment.startActivityForResult ()
  2. v4包版本号确认在23.2.0以后
4. 部分机型中调用系统拍照界面,点击拍照按钮无反应
  1. 确定保存文件的路径存在,如果不存在,有的手机会自动创建,有的手机啥反应也没有。
5.EditText文本替换
completeVehicleDataEt.setTransformationMethod(new ReplacementTransformationMethod());

ReplacementTransformationMethod replacementTransformationMethod = new ReplacementTransformationMethod() {

     @Override
    protected char[] getOriginal() {
     char[] lower = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
                return lower;
     }

    @Override
    protected char[] getReplacement() {
        char[] upper = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
            return upper;
        }
    };
6. FragmentTransaction的几种方法
  1. commit() //提交到队列中,待主线程一起执行。如果activity已经执行了onSavedInstanceStatus()会抛异常。
  2. commitAllowingStateLoss() //如果activity已经执行了onSavedInstanceStatus()不会抛异常,不保证保留状态
  3. commitNow() //立刻提交,同步方法,不等待队列。
  4. commitNowAllowingStateLoss() //
  5. executePendingTransactions() //立刻执行队列里所有等待的commit()方法
7. AS中Terminal,直接把目录拖到Terminal窗口快捷切换目录。
8. 项目中那么buildscript中的repositories和allprojects的repositories的作用和区别是什么呢?
  1. buildscript中的是gradle脚本本身需要的依赖。
  2. allprojects中的是工程本身需要的依赖。
9. HashMap的序列化:
newSims = new HashMap<>();
in.readMap(newSims , Sim.class.getClassLoader());
dest.writeMap(newSims);
10. 原生TabLayout设置小红点
//重点:具体的某个tab是第二层view了。但这里最好try catch,防止兼容性问题。
val tabView = if (tab_layout?.getChildAt(0) != null) tab_layout?.getChildAt(0) as ViewGroup else return
val view = tabView.getChildAt(position) ?: return
11. 捕获全局异常
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){
    @Override
     public void uncaughtException(Thread t, Throwable e) {

        }
    };
12. onBackPressed()和finish的区别,前者在有Fragment的时候是出栈,后者是直接关闭了。
13. 两个比较有用的Intent Flag
  1. FLAG_ACTIVITY_NO_HISTORY

    新打开的activity不在stack中保留,一旦离开,就从stack中移出。

  2. FLAG_ACTIVITY_FORWARD_RESULT

    A启动B,B启动C,然后C要把结果返回给A,那么B在启动C的时候需要加上这个标志。

14. onUserInteraction()和onUserLeaveHint()
  1. onUserLeaveHint()

用户主动离开的时候会回调

  1. onUserInteraction()

用户正在与activity交互的时候会回调,如果你想知道用户用某种方式和你正在运行的activity交互,可以重写Activity#onUserInteraction()。
所有调用Activity#onUserLeaveHint()的回调都会首先回调Activity#onUserInteraction(),所以点击跳转的时候该方法会执行两次。

15. 线程同步的辅助类

CountDownLatch ,CycliBarrier,Semaphore

CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同:

CountDownLatch(countDown())一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行;

而CyclicBarrier(await())一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行;

另外,CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。

Semaphore(aquire() , release())其实和锁有点类似,它一般用于控制对某组资源的访问权限。

16. 华为部分机型DialogFragment多出一条线的问题

标题导致的,解决方法:

//第二个参数 0 代表null
setStyle(DialogFragment.STYLE_NO_TITLE , 0);
17. LaunchMode和StartActivityForResult的坑

5.0以后没问题,5.0以前如下图:

18. Button默认宽高问题
  1. button有一个默认的最小宽高,嫌不好看,xml里面设置android:minWidth=”0dp”,android:minHeight=”0dp”
  2. drawablePadding可以设置为负值
19. transformClassesAndResourcesWithSyncLibJarsForRelease

错误详情:

Error:Execution failed for task ':LogEx:transformClassesAndResourcesWithSyncLibJarsForRelease'.
> java.io.IOException: Could not delete path 'F:\ASworkspace\Klicen-Android\LogEx\build\intermediates\bundles\default\libs\android-logging-log4j-1.0.3.jar'.

解决方案:
根据路径去文件夹中找到该文件,然后删除,会发现不能删除,查看是什么程序在占用,强制杀掉再删除。

20. 启动白屏
//给启动activity设置下面style
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@mipmap/home_bg</item>
21. 当容器内view的布局发生变化的时候播放动画
LayoutTransition transition = container.getLayoutTransition();
transition.enableTransitionType(LayoutTransition.CHANGING);
//子view显隐时候的动画
android:animateLayoutChanges="true"
22. ViewPager切换动画
public class DepthPageTransformer implements ViewPager.PageTransformer {
  private static final float MIN_SCALE = 0.75f;

  public void transformPage(View view, float position) {
      int pageWidth = view.getWidth();

      if (position < -1) { // [-Infinity,-1)
          // This page is way off-screen to the left.
          view.setAlpha(0);

      } else if (position <= 0) { // [-1,0]
          // Use the default slide transition when moving to the left page
          view.setAlpha(1);
          view.setTranslationX(0);
          view.setScaleX(1);
          view.setScaleY(1);

      } else if (position <= 1) { // (0,1]
          // Fade the page out.
          view.setAlpha(1 - position);

          // Counteract the default slide transition
          view.setTranslationX(pageWidth * -position);

          // Scale the page down (between MIN_SCALE and 1)
          float scaleFactor = MIN_SCALE
                  + (1 - MIN_SCALE) * (1 - Math.abs(position));
          view.setScaleX(scaleFactor);
          view.setScaleY(scaleFactor);

      } else { // (1,+Infinity]
          // This page is way off-screen to the right.
          view.setAlpha(0);
      }
  }
23. 修改Dialog默认button的颜色
alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.parseColor("#1C7FFD"));
24. 部分文字点击变色
//重要,设置了这一句点击才有效
tv.setMovementMethod(LinkMovementMethod.getInstance());

textview.setHighlightColor(getResources().getColor(Android.R.color.transparent));

ClickableSpan span = new ClickableSpan() {
    @Override
    public void onClick(View widget) {
    // do sth.    
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        ds.setColor(getResources().getColor(R.color.link_color));
        ds.setUnderlineText(false);
    }
};
25. SwitchCompat修改样式
<style name="AlarmSetting.Switch">
    <item name="colorControlActivated">@color/data_content_mileage</item>
    <item name="colorSwitchThumbNormal">@color/main_hint_color</item>
    <!--关闭时轨迹的颜色-->
    <item name="android:colorForeground">@color/data_line</item>
</style>
26. 水波纹相关

Ripple

27. OkHttp的https设置:
public static OkHttpClient getUnsafeOkHttpClient() {
        try {
            // Create a trust manager that does not validate certificate chains
            final TrustManager[] trustAllCerts = new TrustManager[]{
                    new X509TrustManager() {
                        @Override
                        public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
                        }

                        @Override
                        public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
                        }

                        @Override
                        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                        //0khttp3.0以前这里是返回null
                            return new X509Certificate[]{};
                        }
                    }};
            final SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
            final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
            final HostnameVerifier hostnameVerifier = new HostnameVerifier() {
                @Override
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            };

            OkHttpClient.Builder builder = new OkHttpClient.Builder();
            builder.sslSocketFactory(sslSocketFactory);
            builder.hostnameVerifier(hostnameVerifier);
            OkHttpClient okHttpClient = builder.build();
            Log.d(TAG, "");
            return okHttpClient;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
28. RecyclerView的4种滚动方式
  1. scrollBy() 滚动指定像素
  2. scrollToPosition() 滚动到指定位置,直接显示,只要显示了,不管位置在中间或者其他地方
  3. smoothScrollToPosition() 同上,平滑滚动
  4. scrollToPositionWithOffset() 指定项在顶部
  5. public LinearLayoutManager (Context context, int orientation, boolean reverseLayout)

第三个参数可以控制是否倒序显示

29. RxJava操作符相关
  1. flatmap() , concatmap() 保证订阅顺序,switchMap()如果新的数据已发出,旧的数据源还没有订阅,就取消旧的。
  2. merge()是合并请求序列,订阅多次;zip()合并请求序列的数据,只订阅一次。
  3. takeFirst,取第一个,不抛异常;first取第一个,抛异常。
  4. single()/single(Func1()) 数据项/满足条件的数据项是否只有一个
  5. ofType(Integer.class) 过滤数据类型
  6. distinct 去重
  7. elementAt 取指定元素
  8. ignoreElements 忽略所有的数据项
  9. debounce(5, TimeUnit.SECONDS) 在该时间间隔内,如果只有一个数据项,就发送,如果有多个,就忽略
  10. window操作符会在时间间隔内缓存结果,类似于buffer缓存一个list集合,区别在于window将这个结果集合封装成了observable
  11. throttleFirst() 防抖
30. 隐式启动Service

5.0以后,如果要隐式启动Service,要加上包名:

intent.setpackage()
44、单级静态电流消耗最小化方法及功率优化比较器设计 本文探讨了单级静态电流消耗最小化方法及功率优化的多米诺逻辑比较器设计。通过分析类“AB”输入CMOS差分对电路,提出利用补偿电流源实现高低电流模式切换,提升运算放大器性能;结合VTCMOS与时钟门控技术,在90nm CMOS中设计低功耗比较器,并采用多米诺逻辑提高速度与能效。通过对比传统与改进型多米诺逻辑的静态功耗、动态功耗、延迟和PDP,验证了所提方案在高性能与低功耗方面的优势,适用于便携式设备等对能效要求严苛的应用场景。 阅读详情

相关推荐

卫星监测“America”级#两#栖#攻#击#舰#(LHA-6)出港

卫星监测“America”级#两#栖#攻#击#舰#(LHA-6)出港 前脚刚走,后脚又来,山姆大叔又来刷存在感,2020年7月28日,USS Ronald Reagan流窜在我国东海海区被卫星拍了下来: 2020年8月1日,最新卫星图像显示USS Ronald Reagan已经返回母港日本横须贺:距离其出港(2020年6月8日)已经过去了快两个月 然而事情并没有到此结束,“America”级#两#栖#攻#击#舰#(LHA-6)选择在 “八.一” 这个特殊的日子前后出港颇具挑衅的味道。 根据2020年

qq_46071146的博客 1563

Android项目依赖包冲突的详细解决方案

Gradle学习笔记(四)-- fat-aar.gradle解析 转载:https://www.jianshu.com/p/f88ff677ac95?t=1490962970518 fat-aar.gradle下载地址: https://github.com/adwiv/android-fat-aar 在做android应用程序开发时,我们一般都会...

GL_MINE_优快云的博客 5580

yakit 验证码识别 进行webfuzzer

在渗透测试的过程中,我们可能需要对管理员密码进行枚举,或者密码喷洒的时候,遇到验证码就很烦。有没有自动化识别验证码的办法呢?有的,兄弟,有的。验证码的识别率很低,captcha-killer-modified对算术验证码识别正确率非常低,还会识别成乱七八糟的结果,这就非常麻烦。因为你不知道到底是验证码不对,还是密码不对。这是 ddddocr 识别率的问题,如果师傅们找到准确度更高的工具,完全可以替换上去。

Arkmornings的博客 1663

优快云-markdown编辑器

快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q 插入链接 Ctrl + L 插入代码 Ctrl + K 插入图片 Ctrl + G 提升标题 Ctrl + H 有序列表 Ctrl + O 无序列表 Ctrl + U 横线 Ctrl + R 撤销 Ctrl + Z 重做 Ctrl ...

hh5548的博客 216

语义通信实战:跳过“比特”保“语义”,手把手构建轻量级图像压缩重建网络(基于PyTorch)

本文详细介绍了基于PyTorch的轻量级语义通信系统LICRnet的实现,专注于图像压缩重建中的语义信息保留。通过深度可分离卷积、可变窗口多尺度注意力等创新技术,显著降低计算量并提升性能,特别适用于无人机巡检、远程医疗等物联网场景。文章包含完整的代码实现、训练策略及部署优化方案。

weixin_27697385的博客 220

用 ABAP LSMW 的 Standard Batch / Direct Input 稳准快迁移物料主数据:从 MM01 录制到 RMDATIND 直入的落地指南

本文详细介绍了SAP数据迁移中LSMW工具的使用方法,重点分析了物料主数据迁移的两种主要路径:Batch Input Recording和Standard Batch/Direct Input。前者通过录制事务操作实现快速起步,后者通过调用预置接口程序实现稳定高效的批量处理。文章深入解析了Standard Direct Input的具体实施步骤,包括对象属性设置、源结构定义、字段映射规则等关键环节,并特别强调了迁移前的准备工作(如编号策略、视图策略等)对项目成功的重要性。通过对比两种方法的优缺点,为不同业务

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 151

简单实现消息提示(小红点)

简单实现消息提示(小红点)最近有些忙,版本不断叠加,需求一个接一个。这不,其中有一个需求就是在原有的版本上显示一个红点提示,类似于qq未读消息一样,需求图如下:没错,看起来好简单,可我们再看下设计师给我们切的图(设计师很周到哈,这里谢谢谢谢,嘿嘿)设计师是分不同状态来切的,如果我们按照这个思维去根据不同状态判断实现的话,不是不行,而是稍微麻烦了些。我们能不能尽量对以前代码做轻微的改动就能实现新的需求

kimi 3万+

YOLOv11【第一章:零基础入门篇·第1节】YOLOv11核心架构深度解析与环境配置,一文搞定!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。 本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 5507

欢迎使用优快云-markdown编辑器111

11

cpongo5 280

5GS 协议栈 — PFCP 协议 — URR 用量上报规则

目录 文章目录目录URR 用量上报规则UEE 的参数Usage Report 的参数示例 URR 用量上报规则 29244 5.2.2 Usage Reporting Rule URR 的作用? 用来告诉 UPF 如何对 PDR 识别的 SDF 或 Application 业务进行使用量统计信息的上报。CP 收到 Report Information 后,可用于计费或者管控(e.g. 超量限速)等用途。 URR 在哪个流程里下发的? N4 会话建立流程。 N4 会话修改流程。 URR 是怎么工作

烟云的计算 4587

Claude Code 任务编排 头脑风暴与 疯狂拷问:Superpowers vs Grill-me 硬核对比与工程落地

Superpowers和Grill-me是AI编程中的互补工具:Superpowers提供工程化开发流程(从需求梳理到代码审查),确保规范执行;Grill-me通过持续追问帮助厘清需求,避免方向偏差。两者结合形成"构思-拷问-执行"工作流,前者负责方案生成与落地,后者专注需求审查。根据场景选择:个人项目可用Grill-me快速澄清需求,企业项目推荐Superpowers全流程,复杂开发则建议组合使用。它们分别解决"如何落地"和"是否对齐"的问题,共

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 322
上一篇: Java动态代理
下一篇: (1)c++学习笔记--变量和基本类型
HHcoco
博客等级 码龄13年 46粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值