
A5_android开发相关
A5_android开发相关
王的备忘录
对新型物联网系统搭建有一定经验,项目涉及,RFID智能载体柜,智能锁控系统,手持库管系统,可移动智能医废收集车,智能话机,智能盒子,智能家居应用,车载应用等!坐标沈阳。
展开
-
阿里的通义灵码在android studio上的使用方法
8,并针对阿里云 SDK/OpenAPI 的使用场景调优,助力开发者高效、流畅的编码。通义灵码是阿里推出的免费AI编程工具,基于通义大模型,国内Copilot平替产品,安装方法,在android studio的插件中查询lingma,安装即可。实际使用当中,代码提示和生成代码的功能实用性很强。以下是官方的使用指南。1,提供行级/函数级实时续写、7,异常报错排查等能力,2,自然语言生成代码、原创 2024-01-05 08:57:35 · 4279 阅读 · 0 评论 -
git remote: HTTP Basic: Access denied
进入控制面板》用户账号》凭据管理器?windows凭据》普通凭据,在里面找到git,点开编辑密码,更新为最新密码之后就可以正常操作了。原创 2021-08-11 09:08:42 · 106 阅读 · 0 评论 -
fragment中获取activity的变量
fragment中获取activity的实例变量,比如更改某个在activity中的控件的参数时,就会使用到在当前的Fragment 中调用 getActivity()来获取装载 Activity的实例,然后通过该实例调用其实例/变量((PMainActivity)getActivity()).getmPhoneHandleState()...原创 2020-10-22 09:48:51 · 2854 阅读 · 0 评论 -
framework相关
Android framework包含三个小伙伴:服务端、客户端、linux驱动。服务端服务端主要包含两个很重要的类:WindowManagerService(WMS)和ActivityManagerService(AMS)。(两个大佬管理者服务)客户端客户端包含以下类:ActivityThread:是安卓应用程序的主线程类,也就是UI线程或者称为主线程,所有的处理用户消息,以及绘制页面的工作都在该线程中完成。Activity: ActivityThread会根据用户的操作选择让哪个原创 2020-08-24 16:14:03 · 159 阅读 · 0 评论 -
反编译android的apk
jadxhttps://github.com/skylot/jadx直接将apk文件将其拖入.可得到如下信息:签名的详细信息(类型,版本,主题,签名算法,MD5,SHA-1,SHA-256等等) 所有资源文件(比如layout布局文件都是反编译了的,可以直接查看) 所有class对应的java代码(未加壳的才行),java代码对应的smali代码也能看. so文件据说,jadx是史上最好用的反编译软件,从使用上来看,确实是这样,操作简单.除了上面提到的功能点外,还有些...原创 2020-07-11 09:31:03 · 189 阅读 · 0 评论 -
Scarlet A Retrofit inspired WebSocket client for Kotlin, Java, and Android.
websocket实现https://juejin.im/post/5f0452615188252e5522b747A Retrofit inspired WebSocket client for Kotlin, Java, and Android.https://github.com/Tinder/Scarlet/tree/master原创 2020-07-09 11:39:41 · 350 阅读 · 0 评论 -
ViewBinding和DataBinding的区别
ViewBinding和DataBinding均会生成可用于直接引用视图的绑定类。不过,这两者之间存在明显差异:1.DataBinding仅处理使用 代码创建的数据绑定布局。2.ViewBinding不支持布局变量或布局表达式,因此它不能用于在 XML 中将布局与数据绑定。ViewBinding仅是节省了findview的步骤,并且启用后,每当创建一个xml布局文件,便会自动生成一个对应的ViewBinding类,仅需在界面里的setContentView传入ViewBinding.根视图ro.原创 2020-06-29 20:12:45 · 9951 阅读 · 2 评论 -
android 压缩代码
尽可能减少APK体积,是我们发布应用时应该遵守的准则之一,一是可以帮用户节省下载时的流量,二是可以减少所占用的内存。如何做呢?当然,最简单的就是移除发布构建中未使用的代码和资源!Android的代码压缩通过Proguard提供,Proguard会检测和移除封装应用中未使用的类、字段、方法和属性,包括自带代码库中未使用的项。Proguard还可以优化字节码,移除未使用的代码指令,以及用短名称混淆...转载 2019-03-25 11:21:09 · 628 阅读 · 0 评论 -
java注释快捷键
注释掉代码:选中代码,按Ctrl+Shift+/ 以 /* */ 形式注释代码 按ctrl+/ 以 //形式注释代码取消代码注释:选中代码,按Ctrl+Shift+\ 取消 /* */ 形式的注释代码 按 ctrl+/ 取消 // 形式的注释代码------------...转载 2019-04-03 14:35:20 · 5594 阅读 · 0 评论 -
常用的XML转义字符记录如下
空格:<string name="out_bound_submit">出  库</string> 其中的 就代表空格换行: <string name="hello_world">你好!\n世界!</string> 其中的\n就代表换行缩进: <string name="hello_...转载 2019-04-17 18:55:59 · 393 阅读 · 0 评论 -
anr
Activity----->5秒Broadcast----->10秒Service----->20秒会报ANR,都是在主线程中运行的原创 2019-05-06 09:51:52 · 144 阅读 · 0 评论 -
startService生命周期
(1)startService方式: onCreate()->onStartCommand()->onDestroy() (2)bindService方式: onCreate()->onBind()->onUnBind()->onDestroy()原创 2019-05-06 10:08:08 · 406 阅读 · 0 评论 -
Android 架构分五层
Android架构:Linux Kernel(Linux内核)、Hardware Abstraction Layer(硬件抽象层)、Libraries(系统运行库或者是c/c++核心库)、Application Framework(开发框架包)、Applications(核心应用程序)...原创 2019-05-06 10:09:09 · 317 阅读 · 0 评论 -
ContentProvider与ContentResolver
ContentProvider负责组织应用程序的数据;向其他应用程序提供数据; 、ContentResolver则负责获取ContentProvider提供的数据;修改/添加/删除更新数据等原创 2019-05-06 10:10:47 · 170 阅读 · 0 评论 -
小京鱼京东智能服务平台
http://smartdev.jd.com/docCenterDownload/list/2原创 2019-03-21 11:56:01 · 871 阅读 · 1 评论 -
Collection
Collection是集合框架的顶层接口,是存储对象的容器,Colloction定义了接口的公用方法如add remove clear等等,它的子接口有两个,List和Set,List的特点有元素有序,元素可以重复,元素都有索引(角标),典型的有Vector:内部是数组数据结构,是同步的(线程安全的)。增删查询都很慢。ArrayList:内部是数组数据结构,是不同步的(线程不安全的)。替代了V...转载 2019-03-09 05:55:16 · 163 阅读 · 0 评论 -
ButterKnife
ButterKnife是一个用来绑定View,资源和回调的提高效率的工具.作者为Jake Wharton. ButterKnife的好处使用BindView替代繁琐的findViewById和类型转换 使用OnClick注解方法来替换显式声明的匿名内部类 使用BindString,BindBool,BindDrawable等注解实现资源获取https://droidyue.com/blo...转载 2019-03-11 15:13:50 · 432 阅读 · 0 评论 -
如何避免OOM?
1.使用更加轻量的数据结构:如使用ArrayMap/SparseArray替代HashMap,HashMap更耗内存,因为它需要额外的实例对象来记录Mapping操作,SparseArray更加高效,因为它避免了Key Value的自动装箱,和装箱后的解箱操作2.便面枚举的使用,可以用静态常量或者注解@IntDef替代3.Bitmap优化:a.尺寸压缩:通过InSampleSize设置合...转载 2019-03-08 09:45:27 · 727 阅读 · 1 评论 -
handler 原理
Handler,Message,looper 和 MessageQueue 构成了安卓的消息机制,handler创建后可以通过 sendMessage 将消息加入消息队列,然后 looper不断的将消息从 MessageQueue 中取出来,回调到 Hander 的 handleMessage方法,从而实现线程的通信。从两种情况来说,第一在UI线程创建Handler,此时我们不需要手动开启lo...转载 2019-03-08 10:01:39 · 212 阅读 · 0 评论 -
Android程序调试
Android支持6种日志类型,依次如下:Verbose:详细,所有类型的日志信息。 Debug:调试,调试用的日志信息。 Info:信息,正常使用时需要关注的日志信息。 Warn:警告,可能有问题,但没发生错误的日志信息。 Error:错误,运行时出现严重错误的日志信息。 Assert:断言。打开「Settings」-> 「Editor」->「Colors Schem...转载 2019-03-12 11:45:55 · 301 阅读 · 0 评论 -
Android Wifi 无线调试
安装一个「ADB WIFI」的插件,安装后重启:然后把APP的调试模式为「Usb Device」连接手机ip地址adb connect 10.1.7.200:5555转载 2019-03-12 11:50:29 · 172 阅读 · 0 评论 -
利用Network Profiler抓包
Android Profiler是AS 3.0后引入的性能分析工具,而Network Profiler是其中一个用于网络分析的工具, 利用它我们直接抓包,而不需借助第三方的抓包工具(比如Charles)进行分析调试。...转载 2019-03-12 11:51:46 · 921 阅读 · 0 评论 -
内存泄漏的场景和解决办法
1.非静态内部类的静态实例非静态内部类会持有外部类的引用,如果非静态内部类的实例是静态的,就会长期的维持着外部类的引用,组织被系统回收,解决办法是使用静态内部类2.多线程相关的匿名内部类和非静态内部类匿名内部类同样会持有外部类的引用,如果在线程中执行耗时操作就有可能发生内存泄漏,导致外部类无法被回收,直到耗时任务结束,解决办法是在页面退出时结束线程中的任务3.Handler内存泄漏H...转载 2019-03-08 10:13:47 · 419 阅读 · 0 评论 -
启动模式
Standard 模式:Activity 可以有多个实例,每次启动 Activity,无论任务栈中是否已经有这个Activity的实例,系统都会创建一个新的Activity实例SingleTop模式:当一个singleTop模式的Activity已经位于任务栈的栈顶,再去启动它时,不会再创建新的实例,如果不位于栈顶,就会创建新的实例SingleTask模式:如果Activity已经位于栈顶...转载 2019-03-08 10:25:34 · 182 阅读 · 0 评论 -
生命周期
Activity 的启动模式,生命周期,两个 Activity 跳转的生命周期,如果一个 Activity 跳转另一个 Activity 再按下 Home 键在回到 Activity 的生命周期是什么样的onCreate onStart onResume onPause onStop onDestroy两个 Activity 跳转的生命周期1.启动AonCreate - onSt...转载 2019-03-08 10:26:39 · 161 阅读 · 0 评论 -
onRestart 的调用场景
(1)按下home键之后,然后切换回来,会调用onRestart()。(2)从本Activity跳转到另一个Activity之后,按back键返回原来Activity,会调用onRestart();(3)从本Activity切换到其他的应用,然后再从其他应用切换回来,会调用onRestart();...转载 2019-03-08 10:31:04 · 967 阅读 · 0 评论 -
SurfaceView
SurfaceView,它是什么?他的继承方式是什么?他与View的区别(从源码角度,如加载,绘制等)。SurfaceView中采用了双缓冲机制,保证解了UI界面的流畅性,同时 SurfaceView 不在主线程中绘制,而是另开辟一个线程去绘制,所以它不妨碍UI线程;SurfaceView 继承于View,他和View主要有以下三点区别:(1)View底层没有双缓冲机制,Surface...转载 2019-03-08 11:16:11 · 453 阅读 · 0 评论 -
如何实现进程保活
a: Service 设置成 START_STICKY kill 后会被重启(等待5秒左右),重传Intent,保持与重启前一样b: 通过 startForeground将进程设置为前台进程, 做前台服务,优先级和前台应用一个级别,除非在系统内存非常缺,否则此进程不会被 killc: 双进程Service: 让2个进程互相保护对方,其中一个Service被清理后,另外没被清理的进程可以立即重启...转载 2019-03-08 11:17:24 · 715 阅读 · 0 评论 -
说下冷启动与热启动是什么,区别,如何优化,使用场景等。
app冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷启动(后台不存在该应用进程)。冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。app热启动: 当应用已经被打开, 但是被按下返回键、Home键...转载 2019-03-08 11:29:21 · 11130 阅读 · 0 评论 -
Android 中的线程有那些,原理与各自特点
AsyncTask,HandlerThread,IntentServiceAsyncTask原理:内部是Handler和两个线程池实现的,Handler用于将线程切换到主线程,两个线程池一个用于任务的排队,一个用于执行任务,当AsyncTask执行execute方法时会封装出一个FutureTask对象,将这个对象加入队列中,如果此时没有正在执行的任务,就执行它,执行完成之后继续执行队列中下一...转载 2019-03-08 11:33:13 · 369 阅读 · 0 评论 -
探究Android中的注解
注解是我们经常接触的技术,Java有注解,Android也有注解,本文将试图介绍Android中的注解,以及ButterKnife和Otto这些基于注解的库的一些工作原理.归纳而言,Android中的注解大概有以下好处提高我们的开发效率 更早的发现程序的问题或者错误 更好的增加代码的描述能力 更加利于我们的一些规范约束 提供解决问题的更优解替代枚举Android中新引入...转载 2019-03-11 11:55:29 · 225 阅读 · 0 评论