android studio
黄枫谷-厉飞雨
这个作者很懒,什么都没留下…
展开
-
error when building with cmake using
把java环境退回去,不要乱改。原创 2023-03-08 11:37:11 · 1095 阅读 · 0 评论 -
Android储存 文件储存
文件储存3.activity_main2.步骤1.权限的动态申请1.AndroidManifest2.kotlin代码2.文件保存的代码编写3.查看文件保存的位置以及内容原创 2023-02-24 00:34:40 · 300 阅读 · 0 评论 -
MVVM+JetPack(LiveData,ViewModel,ViewBinding)
mvvm,jetpack3.HomeViewModel2.讲解1.View层1.BaseFragment1.ViewBing的使用:主要传入泛型2.布局的绑定1.持有Viewmodel并且调用网络请求的方法2.通过获取ViewModel里面的liveData值设置观察者略原创 2023-02-12 01:05:53 · 233 阅读 · 0 评论 -
Android koin
现在是这样创建对象的我们有一个类,然后有100个地方使用它,这个时候如果我们要修改构造参数,加入一个参数,那么我们就要修改100个地方;如果过了一个月后,然后有要添加参数,这个时候就又要修改100个地方。而有了它,我们只需要修改你一个地方即可根build.gradleapp的build.gradle2.类的实际初始化AppMudule.kt初始化UserRepositoryImpl(接口为UserRepository),UserPresenter(参数为UserRepository)详细的类内容原创 2022-12-18 06:17:56 · 522 阅读 · 0 评论 -
Kotlin2 进阶
kotlin的学习原创 2022-11-03 18:08:38 · 513 阅读 · 0 评论 -
java 插入排序
1.代码:package com.example.lib5.sort;import java.text.SimpleDateFormat;import java.util.Date;public class InsertSort { public static void main(String[] args) {// int[] arr = {101, 34, 119, 1}; int[] arr=new int[80000]; for (原创 2022-03-31 17:16:41 · 560 阅读 · 0 评论 -
Activity(二)
1.旋转不设置的话会从新执行生命周期,如下:2.设置android:configChanges="keyboardHidden|orientation|screenSize"后,只执行onConfigurationChanged1.Home键2.BACK键3.锁屏4.弹出 Dialog无任何改变5.跳转透明Activity...原创 2022-03-23 10:51:05 · 2370 阅读 · 0 评论 -
栈 (3)数组实现 前缀 中缀 后缀表达式规则,逆波兰表达式实现计算器
1.代码1.PolandNotationpackage com.example.lib5.stack;import java.util.ArrayList;import java.util.List;import java.util.Stack;public class PolandNotation { public static void main(String[] args) { //将表达式(3+4)*5-6转为逆波兰表达式,如下,计算结果为29原创 2022-03-23 08:24:38 · 186 阅读 · 0 评论 -
Activity(一)
1.项目地址2.解释1.全部模式图:2.android:launchMode=“singleInstancePerTask”:是一个类似电脑可以多看的功能,比方说一边看一个文档,一边编译代码3.普通模式(默认模式,standard)跟栈一样,先进后出。跳转AB再返回AA到B:同色线与同色矩形,就是其生命周期的方向4.singleTopA跳转到A5.singleTaskABA的执行过程如下:6.singleInstance3.自己见解...原创 2022-03-22 15:31:16 · 2431 阅读 · 0 评论 -
栈 (一)数组实现
1.代码1.package com.example.lib5.stack;public class ArrayStackDemo { public static void main(String[] args) { ArrayStack arrayStack = new ArrayStack(10); boolean isFull=arrayStack.isFull(); System.out.println("是否满了"+isFull);原创 2022-03-19 18:55:56 · 528 阅读 · 0 评论 -
一、 NDK开发(二)cpp基础:结构体与公用体
1.代码1.结构体就类似java的对象//4.结构体,//结构体类似java对象//struct strudent或者typedef structstruct Student{ int i;//4字节 short j;//2字节}s1,s2;使用:4.结构体struct Student student;//赋值student.i = 1;student.j = 5;//第二种赋值s1.i = 1;s2.j = 2;printf("结构体大小%d ", sizeof原创 2022-03-06 20:45:32 · 558 阅读 · 0 评论 -
四、数据结构与算法 (四)单向链表面试:将链表顺序倒过来
1.代码1.将单向链表反向/** * 反向设置链表 * @param head 传入要反向的头节点 */ public void reverseSetList(HeroNode head) { //判断链表是否可以反向,或没必要反向:null,或者链表长度为1,那么没有必要反向 if (head.next==null||head.next.next==null) {原创 2022-03-05 22:41:59 · 690 阅读 · 0 评论 -
四、数据结构与算法 (三)单向链表面试:有效值,倒数第几个节点
项目地址:在SingleLinkedListDemo1.代码1.获取有效值/** * 根据头部获取队列的有效值 * @param head */ public int getLength(HeroNode head) { //判断队列是否为空,如果为空的话,就有效值就为0 if (head.next==null) { return 0;原创 2022-03-01 19:19:36 · 291 阅读 · 0 评论 -
四、数据结构与算法 (二)单向链表 删除
项目地址:在SingleLinkedListDemo模块1.代码1.删除代码public void delete(int no) { //判断队列是否为空 if (head.next==null) { System.out.println("队列为空,无法删除"); return; } HeroNode temp = head.next;原创 2022-03-01 17:06:56 · 513 阅读 · 0 评论 -
四、数据结构与算法 (一)单向链表 有序排列,无序排列,遍历
来自视频尚硅谷:尚硅谷1.代码public class SingleLinkedListDemo { public static void main(String[] args) { //进行测试 //先创建节点 HeroNode heroNode = new HeroNode(1, "唐三", "昊天宗"); HeroNode heroNode1 = new HeroNode(2, "小舞", "十万年魂兽");原创 2022-02-21 21:14:55 · 654 阅读 · 0 评论 -
三、数据结构与算法 (二)数组模拟环形队列
下图是一个数组实现环形队列的示意图,图一是个空队列,这里空可以推断出(rear+2)%maxSize=(front+1)%maxSize表示队列已经满了原创 2022-02-21 20:28:53 · 138 阅读 · 0 评论 -
三、数据结构与算法 (一)数组模拟队列
1.代码1.QueueExample2public class QueueExample2 { public static void main(String[] args) { MyArrayQueue myArrayQueue = new MyArrayQueue(3); System.out.println("原始数组遍历:"); myArrayQueue.showQueue(); System.out.println("添加三原创 2022-02-15 17:02:47 · 509 阅读 · 0 评论 -
一、数据结构与算法 线性结构和非线性结构
1.线性结构数组int[] hello={1,2,3};2.非线性结构二维数组,多维数组,广义表,树结构,图结构原创 2022-02-13 12:00:56 · 239 阅读 · 0 评论 -
Android studio 创建Java lib,控制台中文乱码
1.双击shift,输入vmoption,然后直接点击创建create。2.在创建的文件中,输入-Dfile.encoding=UTF-83.重启Android studio,就可以了原创 2022-02-13 11:14:23 · 1629 阅读 · 0 评论 -
一 、retrofit的简单使用
1.代码IGetRequestpublic interface IGetRequest { @GET("news/v2/sunweihao/269")//这里要自己可请求的url,这个不可用 Call<Translation> getCall();}Translation,这就是bean类,可以配合Gson来进行解析//缩略,自己得到json文件后,再来转beanMainActivitypublic class MainActivity extends AppC原创 2022-02-10 18:02:51 · 1139 阅读 · 0 评论 -
十一、RxJava 里面使用泛型讲解extends,super
1.上限与下限1.上限extends格式:<? extends Person>。Person表示一个类1.上限表示只能传入这个类的子类,子子类……,这个类下面的方法中,只能传入子类或者自己:show(new Test());show(new Test());show(new Test());,如果传入父类:show(new Test());这个也不行show(new Test());//由于上限是Person,所以这里会报错就会报错/** * extends表示原创 2022-02-10 09:55:21 · 1086 阅读 · 0 评论 -
禁用AS的instant run
1.Android studio高版本后,instant run已经被替换掉了。改为了HotSwap。原创 2022-01-20 10:59:12 · 759 阅读 · 0 评论 -
post请求实践
用的是okhttp。1.关键代码:final Request request = addHeadersSHA(sign, serialNo).addHeader("token",token).url(requestUrl).post(body).build(); Logger.i(TAG, "gettoken=" + request.headers().toString()); final Call call = mOkHttpClient.newCall原创 2022-01-19 13:47:40 · 112 阅读 · 0 评论 -
Android studio 第一次使用kotlin注意事项
1.下载插件,然后重启(记得重启)2.修改kotlin的版本,我是修改为1.5.21,不然无法运行ext.kotlin_version = "1.5.21"3.4.5.6.7.原创 2022-01-17 14:05:24 · 1586 阅读 · 0 评论 -
Android studio的Structure的探索
1.Structure默认查看(都没有选)会显示有掉用的方法(既有色的),无色的不显示2.排序3.未完待续4.5.6.7.原创 2021-12-31 10:59:20 · 1509 阅读 · 0 评论 -
android .9图片的使用
项目地址1.创建生成的名字和位置2.编辑选中生成的.9图片,然后进行编辑双击可以产生多一个拉伸区将两条线重叠,既拉伸区长度为0,就消失了。原创 2021-12-30 14:26:23 · 1281 阅读 · 0 评论 -
项目代码的查看技巧
1.根据点击来看日志可能有url等2.用debug调试来查看代码3.根据图片来名或者样子可以快速替换想要的图片4.5.原创 2021-12-29 09:41:27 · 2730 阅读 · 0 评论 -
tabLayout+ViewPager+fragment
1.代码略2.步骤与介绍1.Viewpager1.适配器fragments表示:list集合/** * sunweihao Tony * : * 13:38 **/public class XgcfFragmentViewPagerAdapter extends FragmentPagerAdapter { private List<Fragment> fragments; private String[] titles; public Xgcf原创 2021-12-08 14:03:26 · 2513 阅读 · 0 评论 -
Expected an int but was 2461058487 at line 1 column 1938 path $.result.data[6].amount
1.问题出现在gson解析那里2.解决办法把Integer改为Long原创 2021-12-03 15:56:44 · 544 阅读 · 0 评论 -
十、RxJava Flowable的使用总结
1.项目代码略2.比较Flowable与Observable使用方法基本一致,只要学会了Observable就相当于学会了Flowable。Flowable的create方法,比Observable多了一个参数,用于满了(128),做什么。背压模式3.未完待续。...原创 2021-11-30 15:52:58 · 2509 阅读 · 0 评论 -
九、RxJava背压模式Flowable
1.项目地址在MainActivity102.讲解:背压的由来,在异步线程中,上游不停的发射,而下游又被堵住了,这样上游会越来越多,最终导致OOM。3.原创 2021-11-30 11:15:32 · 398 阅读 · 0 评论 -
八、RxJava线程切换subscribeOn,observeOn
1.项目地址在MainActivity82.讲解获取线程名字方法://获取当前的线程name(是主线程还是异步线程) private String getCurrentThread() { return Thread.currentThread().getName(); }1.默认线程上下游默认都是主线程2.为上游设置异步线程,下游设置主线程//上游配置异步线程,下游配置主线程,RxJava内部是一个线程池 Observable.create原创 2021-11-29 19:12:24 · 813 阅读 · 0 评论 -
七、RxJava异常处理onErrorReturn,onErrorResumeNext,onErrorResumeWith,retry
1.项目地址在MainActivity72.讲解需要在emitter.onError里面执行抛异常,这样才能抛异常,不报错。如emitter.onError(new IllegalAccessException("我要报错了,你小心点,哈哈哈!"));1.onErrorReturn这个报错后,下游不会接收到消息,可以发射一个错误提示给下游,如发射一个404// 用emitter.onError抛出异常的话,上游(观察者)还是会执行完。onErrorReturn会使下游(观察者)原创 2021-11-26 14:37:05 · 3505 阅读 · 0 评论 -
六、RxJava合并startWith,concatWith,concat,merge,zip
1.项目地址在MainActivity62.讲解就是把多个上流拼接后,再打印1.startWith将两个被观察者拼接起来,拼接的后面运行。下面运行结果是1000,2000,3000,1,2,3。 被拼接的前面运行Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(@NonNull ObservableEmitte原创 2021-11-25 16:19:14 · 1055 阅读 · 0 评论 -
app抓包
步骤:1.下载安装官方地址安装的话,很简单。2.找Ip地址,端口号IP地址:端口号:3.手机设置主机,端口号,找到wlan,点进去代理模式设置为手动,输入电脑ip,端口号,保存4.操作手机,加载界面,查看URL...原创 2021-11-25 14:32:32 · 589 阅读 · 0 评论 -
五、RxJava条件all,contains,any
1.项目地址在MainActivity52.讲解有了这个中间操作后,下游都是一个boolean参数:1.all表示全部都:以前的写法与用RxJava:下面的存在一个包含“cc”,所以String v1="1"; String v2="2"; String v3="3"; String v4="cc"; //all全部都 //平常写法 if (v1.equals("cc")||v2.equals("原创 2021-11-25 14:14:01 · 591 阅读 · 0 评论 -
四、RxJava过滤filter,take,distinct,elementAt,ofType
1.项目地址在FilterActivity里面2.讲解1.filter过滤,false的表示过滤掉,true的表示保留在 这 “三鹿”, “合生元”, “飞鸽” 三个中,三鹿保留,其他两个都过滤掉,既只打印“三鹿”。//上游 Observable.just("三鹿", "合生元", "飞鸽") //订阅 .filter(new Predicate<String>() {原创 2021-11-24 14:47:20 · 432 阅读 · 0 评论 -
三、RxJava转换map,flatMap
1.项目地址在:MainActivity42.讲解1.map,int类型转为StringObservable.just(1) .map(new Function<Integer, String>() {//int转String @Override public String apply(Integer integer) throws Throwable {原创 2021-11-24 14:30:21 · 400 阅读 · 0 评论 -
二、RxJava 创建:create,just,fromArray,empty,range
1.项目地址在MainActivity3那里2.讲解1.普通创建 create:这里发射一个“A”,然后打印出来://普通创建: Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(@NonNull ObservableEmitter<String> emitter) throws Thro原创 2021-11-24 11:11:37 · 295 阅读 · 0 评论 -
一 、RxJava 简单概念,依赖
1.依赖:implementation "io.reactivex.rxjava3:rxjava:3.1.2"implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'2.基本介绍:RxJava:它是观察者模式。一般分为上游(被观察者),下游(观察者),订阅(这中间还有个中间操作,过滤,转换……,跟stream流有点一模一样,估计是……,哈哈哈)什么是观察者模式呢:大致就是:苍老湿,她是否有新出电影,然后张三,李四,王五就会去观察她的动态,如果苍.原创 2021-11-24 10:42:45 · 629 阅读 · 0 评论