- 博客(703)
- 资源 (56)
- 问答 (22)
- 收藏
- 关注

原创 开发学习常用网站
文章目录1、Android 开发1)Android 在线代码阅读1、Android 开发1)Android 在线代码阅读https://www.androidos.net.cn/sourcecode
2019-01-14 13:38:24
1137
转载 Unity 华为HMS/AGC SDK集成简介(以接入华为广告流量变现服务为例)
中国Unity封装了基于华为HMS/AGC服务的SDK,对于移动端项目开发,可以直接在Unity工程中集成使用各种华为功能,所构建出的安卓包可以使用户直接调用各种华为服务,以此打造高品质应用与体验。目前Unity华为服务SDK中支持的广告形式为“Rewarded Ads激励式广告”和“Interstitial插播式广告”两种,请根据对华为广告位形式的需求添加广告位。本程序包中目前集成华为广告服务的广告形式有两种,分别为“Rewarded Ads激励式广告” 和 “Interstitial插播式广告”。
2023-01-31 20:45:00
4
转载 【git】将多个提交合并为一个commit
这里的commit_id是待合并的多个commit之前的那个commit ID,这里也就是上图中add1下面的那个commit ID。在使用git做版本管理器的时候,有时候需要将多个commit合并成一个commit,因此这里记录下具体的操作方法,便于查阅。执行命令:git log,可以查看当前的一些提交信息,这些提交按照时间先后顺序为:add1、add2、add3、add4。从上图中,可以看到,我这里已经将add1、add2、add3、add4这4个commit合并成1个新的commit。
2023-01-13 21:15:00
25
转载 git删除远程分支
git branch -D 是git branch --delete --force的简写,它会直接删除。都是删除本地分支的方法(与删除远程分支命令相独立,要想本地和远程都删除,必须得运行两个命令)。推送空分支到远程(删除远程分支另一种实现)git push origin :远程分支。删除远程分支 git push origin --delete 远程分支名。删除本地分支 git branch -d 本地分支名。查看本地和远程分支 git branch -a。查看远程分支 git branch -r。
2022-12-08 22:30:00
229
原创 电子教鞭 屏幕绘制
4.对绘制图片的 保存 可以使用screen 抓取 或者 一个好用的 抓图软件。3.可以在屏幕上 绘制直线 矩形 箭头 文字 等。FastStone Capture 来抓取保存。5.对于电子教鞭 打开屏幕放大的问题。1. 打开红烛电子教鞭。2.F9 隐藏 显示。
2022-11-24 00:43:18
120
转载 Kotlin 基础语法
函数定义使用关键字 fun,参数格式为:参数 : 类型fun sum(a: Int, b: Int): Int { // Int 参数,返回值 Int}表达式作为函数体,返回类型自动推断:public fun sum(a: Int, b: Int): Int = a + b // public 方法则必须明确写出返回类型无返回值的函数(类似Java中的void):}// 如果是返回 Unit类型,则可以省略(对于public方法也是这样):}
2022-11-15 21:15:00
50
转载 Android databinding xml中处理数据与控件绑定
xml中加载图片编译时会爆出警告,xml中设置数据有几种情况没有提示,编译时xml中出现错误并不会定位到错误的位置,等一些问题。大家看到这是用布尔类型来判断,但是实际项目中不可能全是这么简单的判断条件,可能需要通过一个int类型或者string类型来判断,加入现在我们的判断规则是,根据年龄来控制按钮的显隐性,年龄大于五十岁的隐藏,小于五十岁的显示,实际项目中也可能给你的不是个路径,而是根据类型加载不同的图片,也可能是本地图片,那么下面看下。app:testState="@{"图片路径"}"/>
2022-11-08 21:45:00
146
转载 Android ViewModel与LiveData组件组合使用详解
LiveData是一个可被观察的数据容器类,具体来说,可以将LiveData理解为一个数据的容器,它将数据包装起来,使数据成为被观察者,当该数据发生变化的时候,观察者就能获得通知,我们不需要自己去实现观察者模式,LiveData内部已经默认实现好了,我们只要使用就可以了。//通过LiveData.observe()观察ViewModel中数据的变化。二、将上面的案例,结合LiveData组件一起使用,这样会更方便,减少代码的冗余。//完成对ViewModel中数据的更新。//收到回调更新UI界面。
2022-11-04 23:45:00
47
转载 Android架构组件ViewModel和LiveData介绍及使用
/ 创建LiveData}}}// 当MyActivity被销毁时,Framework会调用ViewModel的onCleared()}}
2022-11-04 22:00:00
92
原创 ViewModel 的基本用法
ViewModel 应该算是Jetpack 中最重要的组件之一了。其实Android 平台上之所以会出现注入MVP、MVVM 之类的项目架构,就是因为在传统的开发模式下,Activity 的任务实在是太重了,既要负责逻辑处理,又要控制UI 提示,甚至还得处理网络回调,等等。在一个小项目中这样写或许没有什么问题,但是如果在大型项目中仍然使用这样写法的话,那么这个项目将会变得非常臃肿并且难以维护,因为没有任何架构上的划分。
2022-11-04 11:27:34
141
转载 AppbarLayout的简单用法
(4) enterAlwaysCollapsed:是enterAlways的附加选项,一般跟enterAlways一起使用,它是指,View在往下“出现”的时候,首先是enterAlways效果,当View的高度达到最小高度时,View就暂时不去往下滚动,直到ScrollView滑动到顶部不再滑动时,View再继续往下滑动,直到滑到View的顶部结束。(4)视差滚动子View(Parallax scrolling children): 子View可以选择在当前的布局当时是否以“视差”的方式来跟随滚动。
2022-10-13 20:00:00
151
转载 CoordinatorLayout初探
是Material Design的一个核心布局, 它能起什么作用呢?从名字上看, 它是帮我们协调子View的, 根据我们的定制要求, 帮助我们协调各个子view的布局.
2022-10-10 22:00:00
20
转载 Toolbar继续深入
之前我们对Toolbar的使用还是比较基础的, 实际使用中, 开发人员创建了各种不同的导航栏样式, 大大增强了个性化的体现. 我们继续了解toolbar还能做出什么花样(个性化)来.
2022-10-10 21:15:00
22
转载 Toolbar的使用
好, Toolbar就讲这么多, 当然功能还有很多, 比如设置subTitle, 增加自定义View, 增加收缩动画等, 在其它笔记中陆续补充.可是, 一般若是主页的话, 我们可不希望出来的是个"后退" 箭头图标, 最好是能代表HOME或者APP LOGO的图标. 我们要做如下更改.菜单里只有三项, 分别是"Backup", "Delete", "Settings", 并分别配置了图标.这个导航按钮有个固定的名称, 叫"android.R.id.home", 我们在菜单选取项上更新代码.
2022-10-10 20:00:00
86
转载 MotionLayout MotionScene 动画从未如此简单!
将升级到2.0或以上。将布局转化为创建文件并在的属性中指明。在文件中编辑分别设置动画开始和结束时控件的状态。编辑元素指明动画开始和结束对应的是哪个。预览和运行程序文章中的动画效果算是个入门,MotionLayout还有些更复杂更不好理解的属性。还有MotionScene要怎样复用?代码如何控制动画?等等。那下次就和大家分享这些进阶一点的东西吧。MotionLayout 动画从未如此简单!
2022-10-09 19:45:00
168
转载 listview + popupwindow 多级listview
项目在GitHub上的地址:GitHub上的PopupDownMenu在CSDN上的下载地址:csdn 下载文章转载:仿美团、淘宝等三层以下的任意层级下拉筛选菜单PopupDownMenu
2022-10-08 23:30:00
29
转载 自定义View 点击展示 自定义 PopupWindow
3,实现listView的布局,使用adapter,结合listview的item(本文名为:pop_list_view_item),实现点击item回填数据与关闭PopWindow。2,实现底部下拉视图,使用popWindow,pop的布局使用listview(本文名为:pop_list_view)本Demo里数据展示是使用String~~~,实际开发回填的是文本,给后端需要传的应该是id,一般要是用对象~1,实现头部视图(本文名为:pop_out_top_view)
2022-10-08 21:30:00
52
转载 Android工具: Android Studio中的gradle文件详解
Android Studio 使用的编译环境是Gradle,目前,最新版本是6.5。使用Gradle进行配置和编译,灵活维护性好,而且有较强的自动化,升级容易。Android Studio版本和Gradle的版本也具有一定的关联性,升级到高版本的Android Studio时,它会自动下载和配置相应的gradle版本。
2022-10-08 19:45:00
339
转载 git:新建文件未先add直接commit,提交后,新增文件丢失问题
查看最近add 过的30个文件,可以根据自己大概变动的文件数设置相应的值。最后,手动还原,点进去每一个文件,有些可能是一些空文件,有一些正好是你丢失的文件,需要自己手动加回到正确的位置。例如第一个是 79dcf6cb091817f990c75cadd1a2de8816f19613。注:需要先创建空文件夹files,否则会报找不到files文件夹导致写入失败。然后多光标操作,每一行只留下id。,查看文件内容是否是丢失的。直接将内容写到文件中。
2022-10-08 18:45:00
297
转载 appium自动化的工作原理
是一个C/S结构,包括Server和Client。Appium Server是Appium的服务端,作为一个Web接口服务,使用Node.js实现。Appium Server的图像界面,可设置启动or停止服务器、查看日志,可使用inspect查看应用程序的元素。Appium Client作为客户端,会给服务端Appium Server端发送请求会话来执行自动化任务。
2022-09-08 20:15:00
148
1
转载 AudioTrack的基本使用
只支持AudioFormat.ENCODING_PCM_8BIT(8bit)和AudioFormat.ENCODING_PCM_16BIT(16bit)两种,后者支持所有Android手机。AudioManager.STREAM_SYSTEM_ENFORCED:在某些国家实施的系统声音的音频流。MODE_STREAM,需要按照一定的时间间隔,不断的写入音频数据,理论上它可以应用于任何音频播放的场景。AudioManager.STREAM_VOICE_CALL:用于电话通话的音频流。
2022-09-08 20:00:00
204
转载 Appium App UI自动化之webdriver的三种等待方式(强制等待、隐式等待、显示等待)
隐式等待只需要声明一次,一般在打开浏览器后进行声明。是针对于某个特定的元素设置的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。但是隐式等待依然存在一个问题,那就是程序会一直等待整个页面加载完成,也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步,但有时候页面想要的元素早就在加载完成了,但是因为个别js之类的东西特别慢,我仍得等到页面全部完成才能执行下一步。
2022-09-07 23:15:00
159
转载 Python中的lambda函数
匿名函数是指没有声明函数名称的函数。在上面的脚本中,我们先定义了一个由随机数组成的列表numbers_list,接着我们调用map()函数,并传递一个lambda函数作为参数。在Python中,一个lambda函数是一个只有一行代码的函数,不需要进行函数名声明,它可以有很多个参数,但是只能有一个表达式。filter()函数将返回一个新的列表,新的列表中只包含旧列表中被lambda函数处理后返回值为True的那些元素。在上面的例子中,我们有一个函数,该函数传入一个参数,将它与一个未知数相乘。
2022-09-06 23:30:00
1194
转载 Appium App UI自动化之webdriver的三种等待方式(强制等待、隐式等待、显示等待)
隐式等待只需要声明一次,一般在打开浏览器后进行声明。是针对于某个特定的元素设置的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。但是隐式等待依然存在一个问题,那就是程序会一直等待整个页面加载完成,也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步,但有时候页面想要的元素早就在加载完成了,但是因为个别js之类的东西特别慢,我仍得等到页面全部完成才能执行下一步。
2022-09-06 23:15:00
218
转载 Qualcomm平台下基于QSEE的指纹识别方案移植之三hal层CA移植
Android8.0 将相关的库文件放到vendor 下,编译的时候直接编译到系统。
2022-09-06 20:00:00
181
转载 用addr2line分析tombstones
当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的确就像墓碑一样记录了死亡了的进程的基本信息(例如进程的进程号,线程号),死亡的地址(在哪个地址上发生了 Crash),死亡时的现场是什么样的(记录了一系列的堆栈调用信息)等等。我这边只看到了JNI_OnLoad,没有看到具体的行数。
2022-09-05 23:15:00
218
转载 python+appium如何驱动真机chrome浏览器
第一种:启动appium-desktop的时候,选择高级配置-chromedriver的二进制路径填上步骤2中存放的路径,比如我填写D:\chromedriver_80\chormedriver.exe。将下载的chromedriver存放到某个路径下,我存放在D:\chromedriver_80\chormedriver.exe。需要知道安装的哪个版本的,我安装的是chrome 80.0.3987.132(设置-关于chrom可查看版本),根据操作系统下载,
2022-09-05 23:15:00
181
转载 Appium 自动化测试 H5页面元素定位
在现在的移动端App中,由于开发效率、需求频繁变更的需求情况下,经常有相关的运营需求,经常要进行更新,如果全部采用原生开发,需要的成本比较高,后来就出现了内嵌的H5页面。那么这些H5页面元素该如何进行定位操作呢?针对这种H5场景直接使用前面所讲的方法来进行定位是不行,因为前面的都是基于Andriod原生控件进行元素定位,而Web网页是单独的B/S架构,两者的运行环境不同因此需要进行上下文(context)切换,然后对H5页面元素进行定位操作。
2022-09-05 23:00:00
228
转载 ubuntu上将Python小应用制作为deb安装包
系统工具 System;影音 AudioVideo;4、安装 sudo dpkg -i program-mydeb_1.0.0_i386.deb 安装(在应用程序编程菜单的附件下) 或者直接双击.deb文件,会 进 入软件中心,点击安装即可。|——deb.desktop(桌面文件生成到/usr/share/applications/)|——可执行文件及执行所需依赖文件(安装后,就在你的/usr/lib生成相应的可执行 文件)
2022-09-01 23:45:00
309
转载 UTC和GMT时间
例如,本地 (北京)时间是 0432 (凌晨四点三十二分),那么,UTC就是 0432 - 0800 = -0368,负号意味着是前一天, -0368 + 2400 = 2032,既前一天的晚上八点三十二分。例如,东八区(北京)是 +0800,西五区(纽约)是-0500,加州是西八区,是-0800,美国中部时区是西六区,-0600,美国山地时区是西七区,-0700,太平洋时 区是西八区,-0800,在夏天使用夏时制,成为-0700。那么,UTC = 本地时间(北京时间))- 0800 (2)...
2022-09-01 23:00:00
497
转载 Android8.0双屏显示异常,主屏启动的Activity会显示到副屏上的问题
根据注释来看,关键就是这个moveStackAllowed了,打印log发现出现问题的时候moveStackAllowed 为true,所以会对mTargetStack 进行重新赋值的操作,在重新赋值操作过程中,由于当前topTask所在的stack是副屏的,所以会进入mService.mStackSupervisor.getNextValidLaunchStackLocked查找非-1的displayId对应的ActivityStack来赋值。
2022-08-25 23:15:00
361
转载 Android 双屏异显
说明很多人有双屏异显的需求,之前我们想实现一般有两种方式.:Google自带的Presentation从5.1.1开始RK自己实现了一套双屏异显得机制其实如果用过的人都知道,方式1的局限性太大而方式2的兼容性也不是很好但是从android8.0开始,google加入了新的双屏异显机制,可以直接启动应用到副屏显示,灵活切兼容性很好.
2022-08-25 19:15:00
369
转载 Python 获取当前文件 当前目录 上级目录 上上级目录
os.getcwd() # 返回一个表示当前工作目录的unicode字符串os.path.dirname(__file__) # 返回文件的目录名os.path.abspath(__file__) # 返回文件的绝对路径Python 获取当前文件 当前目录 上级目录 上上级目录。
2022-08-24 23:15:00
1742
转载 cmd 执行 python 脚本出现 ModuleNotFoundError
出现错误的原因是因为在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import时就会出现此类错误。命令行执行程序时总是报ModuleNotFoundError的错误。笔者的python项目文件夹。
2022-08-24 21:45:00
350
Android 典型技术模块开发详解 代码
2018-11-06
Android 典型技术模块开发详解 pdf
2018-11-06
正交法则查找文本里面时间
2018-07-10
autolayoutvalues.rar
2021-04-01
vc_environment.rar
2020-09-15
Alexa-On-Android-master.rar
2020-07-21
Android面试宝典6.0.rar
2020-05-22
Fiddler v5.0.20182.28034.zip
2019-07-12
android 9.0 ota 升级 bootloader 后依然是前版本log信息
2020-07-23
怎样设置 SLG46824 GPIO 口 高低电平 救急 在线等
2019-10-31
添加 Android 9.0 外置SD卡 写权限
2019-06-26
apk install : INSTALL_FAILED_INVALID_APK
2019-06-12
apk install : INSTALL_FAILED_INVALID_APK
2019-06-12
如何修改源码,实现锁屏状态,也会出现底部的导航栏?
2018-09-25
获取Amazon Alexa 聊天记录到开发的Apk
2018-06-07
android7.0 关闭屏幕旋转功能
2017-10-15
apt-get 出错 an error code (100)
2017-10-09
eng版本正常user 版本烧写进去就出现出现 phone crash?
2017-09-27
OTA 升级主要升级那些内容
2017-09-13
android 禁用开机向导
2017-09-07
怎样在 android 中禁用 camera server?
2017-08-30
添加 ota 升级百分比显示?
2017-08-28
怎样去除对openssl的依赖,替换成boringssl
2017-04-24
编译出现outspace问题
2017-03-24
如何在android中添加代码,开机清除指定APK缓存数据
2017-02-20
如何在android中添加代码,开机清除指定APK缓存数据
2017-02-14
怎样才能将user版本中的APLog导出?
2017-01-12
OTA 卡刷升级出现问题
2016-12-26
assert文件夹在哪里?
2016-11-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人