Android学习
HelloMagina
这个作者很懒,什么都没留下…
展开
-
M1芯片的苹果电脑配置android开发环境
如果使用苹果最新出的arm芯片电脑来做android开发,配置环境步骤如下:1. java环境配置。不要使用brew install 通过命令行安装jdk,而是去https://www.azul.com/downloads/?package=jdk下载arm64版本的jdk2、android studio下载及配置去官网下载对应苹果m1 chip的android studio,打开 androidstudio,下载sdk,下载红框中的command-line tools下载完毕后,进到andr原创 2021-12-24 21:33:14 · 2814 阅读 · 0 评论 -
前端WebView传递图像到原生
背景:前端页面需要将页面展示内容进行截屏,然后调用原生的分享功能进行分享。解决方案前端调用相关api对页面内容进行绘制截取,将截图的内容进行base64编码后,再通javascripteinterface传递给客户端,客户端将webview传递过来的字符串解码成Bitmap疑难点1、base64字符串从前端传过来时,带了base64的标识符,一般为"base64/png",注意客户端在解码时,一定要把这段标识字符串删除掉,然后再解码,否则会解码失败;2、iOS解码时,除了第一个注意点外,还要要注原创 2021-10-15 16:49:26 · 511 阅读 · 0 评论 -
JDK android源码中为什么在方法中创建一个临时变量替代成员变量、类变量
JDK源码中为什么在方法中创建一个临时变量替代成员变量、类变量 又名 临时变量提高Java代码性能一个Java类中可以存在多种形式的变量,可以是最一般的成员变量;或静态变量;或临时变量。那么这三种变量的存取效率如何?1、实战出真知```javapackage com.subject.variable;/** * 使用临时变量提高Java代码性能 (转) */public class VariableDemo { private long instVar;// 成员变量转载 2021-05-29 11:32:37 · 169 阅读 · 0 评论 -
Androidstudio调试时 手机自动断开
有时候使用android studio调试真机时,每当到了断点处,过个几秒钟,就自动失去连接了。这种情况是可能突然出现的,然后就会一直存在这个问题。原因就是sdk目录下的adb工具出现问题了,最简单的解决方案就是更新adb,直接在android studio里面的sdk tool那里更新下 platform-tools就好了。...原创 2020-05-21 18:35:16 · 8053 阅读 · 3 评论 -
Flutter Engine预加载分析
预加载的好处:加快Flutter页面的打开速度。预加载的原因:因为每个打开的Flutter页面,默认情况下都需要创建一个Flutter Engine,这个初始化是比较耗时的,所以可以考虑提前初始化一个Flutter Engine并保存起来,后续可以省去初始化的时间而直接使用。预加载的实现:以android端为例,ios基本类似//在应用初始化时,执行如下代码,创建一个flutter engine,并以一个key值保存起来。// Instantiate a FlutterEngine.原创 2020-05-13 09:52:42 · 3610 阅读 · 0 评论 -
Flutter1.12android端升级适配
Flutter1.12官方做了很多修改,有一些是break change.少儿词典中,通过将flutter工程添加到现有android工程的形式来使用Flutter.\version < 1.12时,少儿词典Flutter工程的封装如下:1、Flutter页面的构建。直接构建FlutterView,然后将flutterview添加到布局文件中import io.flutter.facade val flutterView = Flutter.createView( acti原创 2020-05-13 09:50:20 · 774 阅读 · 0 评论 -
android 11的IME animation
android 11 进入preview了,看了下相关新闻,了解到有一个输入法相关的新特性加进来了,其实就是监听系统的windowinset的值的变化吧。体验了下官方demo,感觉just so so.demo地址:https://github.com/android/user-interface-samples.git子项目:WindowInsetsAnimation...原创 2020-04-26 17:21:56 · 460 阅读 · 0 评论 -
Flutter项目:android studio不显示已连接设备 || Flutter SDK path 重启后为空
背景:用android studio开发flutter项目,是需要在Preference设置里面配置flutter sdk path路径的,只有在配置该path后,android studio才会在工具栏那里显示已连接的设备,不论是真实手机还是模拟器。但发现,每次配置flutter sdk path后,如果我重启了android studio,那么之前配置的flutter sdk path又...原创 2020-04-26 17:09:54 · 1823 阅读 · 0 评论 -
android studio启动时打开之前的项目
android studio启动时会默认打开之前打开过的项目,如何才能设置不打开呢,见下图。原创 2020-04-22 14:35:23 · 1592 阅读 · 0 评论 -
Gradle build 报错:Received status code 400 from server: Bad Request
android studio构建报错。错误提示是某个依赖无法下载,但是点击链接,反应是能下载的,郁闷至极。问题应该出现在android studio的代理上面。有可能是某次你设置或代理,即使后续你关闭代理,但是真正执行的时候依然使用了代理,导致问题。所以必须注释掉代理选项。...原创 2020-02-18 15:32:14 · 801 阅读 · 0 评论 -
shell脚本学习-06
82.awk命令语法格式awk 'pattern' filename # file中所有包含的pattern的行都将打印出来awk '{action}' filename # 这种情况下,action将作用于filename中的每一行上awk 'pattern {action}' filename # action将被作用于filename中匹配到pattern的行action只有pr...原创 2019-10-29 10:20:19 · 219 阅读 · 0 评论 -
shell脚本学习-05
79.文本操作命令:sed awk这些命令操作文本时,是一行一行地处理的,如果该行匹配到了关键字或者正则表达式,那么该行被接受并打印在屏幕上,然后读取下一行并进行操作。sed操作符不会修改原本的文件,如果想得到过滤后的结果,需要重定向到其他文件中。sed过滤打印的语法格式:sed -n '/Regular_Expression/p' filenamesed -n '/Mango/p' f...原创 2019-10-25 09:50:23 · 191 阅读 · 0 评论 -
shell脚本学习-04
65.IFS:文本分隔符默认的文本分隔符是’ ',但是可以手动设置为其他的,如:‘:’ ‘|’ ': ’cities=Delhi:chennai:bangaluru:kolkataold_ifs="$IFS"IFS=":"for place in $citiesdo echo the name of city is $placedone66.tr 字符替换tr 'abcd'...原创 2019-10-16 10:09:21 · 369 阅读 · 1 评论 -
Android自定义ViewGroup
自定义ViewGroup与自定义View有一个非常重要的不同点是:需要复写onLayout(),记住一定是需要自己实现这个方法,否则当你调用这个view.addView()时,就会发现add进去的view永远不显示,令人头疼啊。 onLayout()方法一般复写如下: @Override protected void onLayout(boolean changed, ...原创 2017-05-26 22:29:32 · 478 阅读 · 0 评论 -
Android O/Android P行为变更及适配
Android O行为变更:后台服务运行的限制:当应用进入后台状态几分钟后,android系统就会将app视为空闲状态并停止该app的后台服务。所以不能依赖后台service做定时性的任务。前台服务启动的限制:在 Android 8.0之前,创建前台服务的方式通常是先创建一个后台服务(context.startService()),然后将该服务推到前台(startForegroun...原创 2018-08-08 09:36:34 · 3168 阅读 · 0 评论 -
Android Jetpack系列01——Viewmodel
1、Viewmodel是干嘛用的?答:Viewmodel是用来保存数据的,并且可以将其与某个控件(Fragment或者Activity)的生命周期进行绑定。2、使用Viewmodel有什么好处?答:1、譬如Activity因为屏幕旋转,我们需要保存一些数据的话,都会在onSavedInstance()中去保存数据,然后再onRestoreInstance()中去恢复,这样做的话有2个弊端:...原创 2018-12-07 16:49:30 · 579 阅读 · 1 评论 -
Android Jetpack系列03——Room框架使用
1、Room是什么?答:Room是google官方出的一个关系型数据库框架。2.Room相对于原生的SqliteHelper和现有的关系型数据库框架有什么优势和劣势?答:官方给了3个优势:相对于原生sqlitehelper,room可以在编译期检查sql语句的正确性,并且能检查sql语句中出现的表是否存在。这样可以避免一些sql语句错误出现在运行期。相对于其他orm框架:更少的模板代码...原创 2018-12-13 09:59:18 · 1032 阅读 · 0 评论 -
Android Jetpack系列02——ViewmodelWithLivedata
上一篇中讲到了viewmodel,当我点击那个自增按钮时,并不能立刻看到数字显示变化。需要我们重新进入界面,因为我把界面刷新写在了onResume()中。那么是否有方法,当我的数据变化时,那些与该数据绑定的UI能立刻自动刷新呢?鉴于这种需要,Livedata就登场了!!!1、Livedata是什么?答:Livedata是一种增强型的观察者模式,增强之处在于它能感知到生命周期。当被观察者的数据...原创 2018-12-11 09:50:10 · 353 阅读 · 1 评论 -
Android Jetpack系列04之Paging
1、Paging库是什么?答:paging库是android Jetpack组件之一,配合recyclerview使用,用于展示类似于list的数据。2、paging库有什么优势?答:目前我们使用recyclerview来展示view,数据源一般来源于网络或者数据库。那么当我们加载数据时,我们是如何确定要加载多少的呢?当首次加载的数据使用完后,我们是不是都有一个上拉加载更多的交互逻辑?如果这...原创 2018-12-18 09:30:18 · 507 阅读 · 0 评论 -
Flutter工程显示“no devices”
使用androidstudio打开flutter工程,在真机已经连接USB的情况下,依然显示"no devices".解决方法,在flutter sdk目录输入命令:flutter config --android-sdk 自己的android sdk路径...原创 2019-02-21 09:43:09 · 14396 阅读 · 2 评论 -
android7.0 Charles抓包
转载2篇针对android7.0以上手机抓包的方法。前提是手机root过。1、Charles安装及配置文章链接:https://www.cnblogs.com/pengyunjing/p/9158009.html2、证书安装。进行第一步后,http请求能抓到,但是https无法抓到。文章链接:https://gaojiajun.cn/2018/08/charles-notTrust-in...原创 2019-05-09 18:24:09 · 1084 阅读 · 0 评论 -
Android Studio构建报错ERROR: Cause: unable to find valid certification path to requested
如果开了一些代理软件(Charles Fiddle)的话,会出现该情况。原创 2019-05-13 11:46:22 · 3038 阅读 · 8 评论 -
Kotlin版本升级导致编译不过的问题
昨天给项目升级时(升级gradle以及kotlin版本),发现升级后代码竟然无法编译通过,androidstudio给的编译错误提示如下:Caused by: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn't transform method node:Cause...原创 2019-08-16 10:04:35 · 9752 阅读 · 0 评论 -
Appstore登陆后没反应的问题
这里写自定义目录标题看了很多帖子,试了很多办法,终于完全解决了。1.其他工具-终端-命令(复制、粘贴最快捷)rm ~/library/preferences/com.apple.appstore.plistrm ~/library/preferences/com.apple.storeagent.plistrm -rf ~/library/preferences/byhost/*每输入...原创 2019-08-12 12:50:40 · 5156 阅读 · 0 评论 -
Shell脚本学习之路---01
用的较少的关键字命令:1、at:(automatic)代表自动执行某个任务例子:```at 10am mar 31 2015at> echo "taxes due"at> ^D(ctrl+D代表存储该任务)```atq:显示已经预定的任务atrm job-d:删除某个设定的任务2、crontab:重复性地执行某个任务```* * * * * ...原创 2019-09-04 10:24:30 · 329 阅读 · 0 评论 -
Webstorm激活,成功的方法
Webstorm激活,本人实践的最靠谱的方法,好的方法只需要一个。。。。。如下链接:https://www.cnblogs.com/cui-cui/p/8507435.html原创 2018-07-06 11:23:07 · 2421 阅读 · 0 评论 -
自定义view实现水波纹效果
自定义view实现水波纹效果 参考csdn大神 启舰的博客http://blog.csdn.net/harvic880925/article/details/50995587,自己实现了一遍,碰到的坑有2个: 1、记得调用mPath.reset(),否则每次的path内容会叠加在一起,就会充满整个view ,不再出现水波纹效果; 2、代码中的调用贝塞尔曲线的参数原理要弄明白:其实每次原创 2017-09-11 22:09:47 · 454 阅读 · 0 评论 -
关于theme 和style的一些总结
最近公司做新的ergo,主题全部需要更换,在更新的过程中被theme和style折腾得够呛,需要针对不同的控件设置对应style的属性的值,但是又不清楚某个空间有哪些属性值,回来查询了下,发现基本上所有的theme或者控件的style都可以在sdk目录下看到标准的默认的值,如果需要更改某个属性值,只需要复写对应的属性值即可。目录: ../Sdk/platforms/android-26/data/原创 2017-09-13 20:01:32 · 340 阅读 · 0 评论 -
Java Callable Future 使用
今天处理公司应用的patch,发现用到了Future这个类,有点懵,毕竟java代码写得少啊,回家了赶紧学习下。总之,Future Callable Runnable都是用于多线程编程,android中用的最多的应该是runnable,那么这3个东西间的差别是什么呢?一句话,callable接口是有返回值的,而runnable是没有的,future用于配合callable使用。runnab原创 2017-09-04 21:07:55 · 305 阅读 · 0 评论 -
Android——api阅读记录
打算完整地将android官方api文档阅读一遍,并做简要记录。原创 2017-08-02 21:09:45 · 524 阅读 · 0 评论 -
Android项目JNI开发
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-05-07 20:35:06 · 373 阅读 · 0 评论 -
IOC框架手动实现
流行的注解框架是butterknife,使用注解框架主要是为了提高编码效率,尽可能地少写findviewbyid这种重复代码。注解分为编译期注解和运行时注解,butterknife是编译期注解,接下来自己实现的该框架是运行时注解。编译期注解有难度,并且不会对性能有影响。 Android中的注解反射框架包含三个部分: 1、Layout布局注解;2、view注解;3、事件注解。原创 2017-02-23 19:30:26 · 701 阅读 · 0 评论 -
Gradle Template 模板使用
androidstudio的模板功能使用。原创 2017-02-08 20:32:01 · 3450 阅读 · 0 评论 -
android插件化开发
这里主要讲2中插件化开发,远程加载jar和加载从远程下载的apk文件(不需要安装)原创 2016-10-16 09:34:39 · 707 阅读 · 0 评论 -
Android 各种Drawable子类简析
Drawable分类:Drawable是一个抽象类,其他的drawable都是他的子类,包括:BitmapDrawable、ShapeDrawable等等,drawable并没有实际的宽和高,一般作为view的背景时,drawable就会被拉伸到view的大小。BitmapDrawable: 属性src,就是图片资源的ID,tileMode属性可以将一张图片变成如下的效果。 Ninepatc原创 2016-09-25 18:44:57 · 2175 阅读 · 0 评论 -
Java8 lambda表达式
java8新特性在android上的应用主要有匿名监听类,以及集合操作,大致例子如下:1、监听:textView.setOnClickListener((view)->{Toast.makeText(MainActivity.this,"哈哈",Toast.LENGTH_LONG).show();});textView.setOnLongClickListener(v-> {原创 2017-09-07 20:58:22 · 355 阅读 · 0 评论 -
AppCompatActivity Activity ToolBar 显示设置
http://blog.sina.com.cn/s/blog_70e5bf6e0102uxnn.html原创 2017-08-31 22:33:41 · 5143 阅读 · 1 评论 -
android 沉浸式2种
2种沉浸式体验,第一种:actionbar与statebar之间是渐变颜色,一般是statusbar比actionbar(toolbar)颜色略深,第二种是,statebar的颜色与toolbar的颜色完全一样,就是就是自己绘制statebar的背景颜色。第一种的代码: 第一步:在activity的主题中,添加属性item name="android:windowTranslucent原创 2017-09-08 21:46:51 · 394 阅读 · 0 评论 -
android library中引入aar提示找不到
除了在library的build.gradle中加入repositories { flatDir { dirs 'libs' }}!!!!!!注意注意:还需要在application的build.gralde中加入:repositories { ………… flatDir { //注意这个路径符号“../”不能省略 dir...原创 2018-06-25 14:47:26 · 10294 阅读 · 1 评论 -
Gson解析时的bug
list<Bean> mylist;Gson gson = new Gson();String json= gson.tojson(mylist);!!!!!注意:这个bean如果是匿名类,或者本地类,那么json得到的数据全部是null.原创 2018-06-22 11:44:37 · 775 阅读 · 0 评论