思想

查找小于limit的最大数字
1 | int maxValueInVecSmallerThenLimit(vector<int>& vec, int limit) { |

1 | int maxValueInVecSmallerThenLimit(vector<int>& vec, int limit) { |
1 | class Solution { |
1 | class Solution { |
nk的字符串切割成n个长度为k的子串,一次操作可以把一个子串替换成另一个字串,求如何替换,将所有字串都相同。n - cnt[i]NavController是中央导航 API。它会跟踪用户访问过的目的地,并允许用户在目的地之间移动。
NavController如果是NavHostFragment
1 | val navController = this.navController |
1 | fun interface Observer<T> { |
onChanged函数分派数据变化1 | /* synthetic access */ |
在了解ViewModel之前,我们先来了解一下MVC, MVP, MVVM的发展Difference Between MVC, MVP and MVVM Architecture Pattern in Android
1 | interface ViewModelStoreOwner { |
ViewModelStoreOwner的类会有一个viewModelStore属性ViewModel时会传递这个变量,具体传递方式在见by viewModels()ViewModelStoreOwner的直接子类有: ComponentActivity, Fragment 和 NavBackStackEntry1 | public interface LifecycleObserver |
lifecycle.addObserver()时,可以传入LifecycleEventObserver或DefaultLifecycleObserver,一个通过event获取当前状态,一个通过不同的回调函数获取当前状态1 | Activity -- AccountAuthenticatorActivity |
1 | java.lang.VerifyError: Verifier rejected class com.xiaomi.market.util.UIUtils: void com.xiaomi.market.util.UIUtils.setStatusBarDarkMode(android.app.Activity, boolean) failed to verify: void com.xiaomi.market.util.UIUtils.setStatusBarDarkMode(android.app.Activity, boolean): [0x15] type Undefined unexpected as arg to if-eqz/if-nez (declaration of 'com.xiaomi.market.util.UIUtils' appears in /data/app/~~pH0reBrzyfvMag1T-TAoDw==/com.xiaomi.market-EzZXS_MznmhQs5NCCbvqfA==/base.apk!classes2.dex) |
在xiaomi商店中使用了Lmiui/os/Build类,该类继承Landroid/os/Build,且存在于小米系统中,导致类找不到。导致运行时闪退。
对于这类小米系统中才能获取到的类,采用等价替换的方法进行修复。如在Lmiui/os/Build中有:
Context是抽象类,具体实现在ContextImpl,Application,Service,Activity都直接或间接继承自ContextWrapper,ContextWrapper通过代理的方式调用真正的ContextImpl。
1 | /** @hide */ |
创建 RelativeLayout 时,请务必为视图对象定义 ID。在相对布局中,同级视图可以定义其相对于通过唯一 ID 引用的另一个同级视图的布局。
ID 不必在整个树状结构中具有唯一性,但在您搜索的树状结构部分中必须是唯一的。它通常可能是整个树,因此最好尽可能使其具有唯一性。
findViewById是View的方法1 | /** |