mmsx
专注于移动开发,关注移动开发开源项目,发布相关demo测试源码。
展开
-
android MutableLiveData setValue 响应速速 postValue 快
主线程更新:如果确定更新操作在主线程执行,优先使用setValue以确保数据更新的即时性和响应速度。后台线程更新:如果需要在后台线程中更新LiveData,使用postValue是必要的,尽管会有一定的延迟。性能敏感场景:在性能敏感或对响应速度要求较高的场景下,尽量使用setValue,并确保更新操作在主线程进行。原创 2025-03-19 22:10:10 · 127 阅读 · 0 评论 -
Android studio 使用git提交到gitee代码托管平台
1、Android studio 右下角点击这个会弹出分支选择、还可以创建分支进行提交。2、弹出来显示如下说的很清楚了,看这英文3、选择了一个分进行提交4、进行确认提交就行原创 2021-03-31 09:05:21 · 791 阅读 · 0 评论 -
Android studio 提交gitee报错Git@gitee.com: Permission denied (publickey)
1、问题简述提交代码远程仓库报错Git@gitee.com: Permission denied (publickey). Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.或者添加仓库地址时候报错Git@gitee.com: Permission denied (publickey). Could not原创 2021-07-06 22:52:43 · 1243 阅读 · 0 评论 -
Android studio ndk目录无法点击选择
问题原因Android studio ndk目录无法点击选择,不能点击,不能设置。在local.properties文件夹加上路径ndk.dir=C\:\\Users\\zou\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462也不能识别,报错* Exception is:org.gradle.api.ProjectConfigurationException: A problem occurred configuring project原创 2021-11-01 21:23:02 · 4726 阅读 · 0 评论 -
android studio 各种设置以及常见问题
因为之前工作项目开发都是适应eclipse开发android的。用习惯了,一时半会不是很好适应android studio编译器。所以把android studio常用设置先摸索一番做一下总结。1,黑色主题设置在file里面找到settings选项,然后找到外观设置appearance后,找到主题theme选择darcula,到下面选择apply即可。2,字体大小的设置在f原创 2016-11-20 23:21:29 · 2152 阅读 · 0 评论 -
android studio 添加阿里云仓库
公司的网络实差,连接国外网站实慢。有些下载个包或者插件都下载不好。现在要感谢伟大的阿里巴巴,提供国内仓库。仓库地址:https://maven.aliyun.com/mvn/view打开上面网页如下图:在android studio 使用方式: repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public' } maven { url 'https:/原创 2020-07-19 22:29:11 · 3245 阅读 · 0 评论 -
Android studio 出现一直在同步Syncing only active variant
Android studio 一直在同步,停止下来。后面再Event Log 里面看到下面的提示17:01 Gradle sync failed: EventQueue.isDispatchThread()=false Toolkit.getEventQueue()=com.intellij.ide.IdeEventQueue@1c1ff466Current thread: Thr...原创 2019-04-24 19:15:14 · 14977 阅读 · 2 评论 -
Android JNI编程如何巧妙获取JNIEnv
名词解释:JavaVM:Java虚拟机在Native层的代表,在Android中一个进程只有一个JavaVM,所有的线程共用一个JavaVM。JNIEnv:Java调用Native语言的环境,是一个封装了几乎所有JNI方法的指针,每一个Java线程都有一个对应的JNIEnv,JNIEnv只在当前线程可用,不能跨线程使用,不同线程的JNIEnv彼此独立。在Native环境中创建的线程,如果需要调用JNI方法,必须要调用AttachCurrentThread()与JVM进行关联,使用后也需要调用Deta原创 2021-08-28 10:51:33 · 1516 阅读 · 0 评论 -
android 编译PinyinIME输入法报错
1、错误提示C:\SVN\CustomPinyinIME\app\src\main\cpp\android\com_android_inputmethod_pinyin_PinyinDecoderService.cpp:217:65: error: cannot initialize a parameter of type 'jboolean *' (aka 'unsigned char *') with an rvalue of type 'bool'2、找到这行编译错误的代码JNIEX.原创 2022-01-04 21:35:45 · 1683 阅读 · 0 评论 -
adb 拷贝RPMBD文件 到系统分区
请注意,这需要在设备上具有 root 访问权限才能执行。如果您的设备未 root,则需要获取 root 权限才能运行 rpmbd。1、连接 Android 设备到计算机上,并确保您已启用开发人员选项和 USB 调试功能。3、等待文件传输完成。原创 2023-06-09 09:59:36 · 1658 阅读 · 2 评论 -
android studio 使用JDK版本引起的报错
如果在 Bug Database (http://bugs.java.com) 中没有找到该错误, 请通过 Java Bug 报告页 (http://bugreport.java.com) 建立该 Java 编译器 Bug。请在报告中附上您的程序和以下诊断信息。在命令行使用命令:./gradlew compileDebugSources --stacktrace -info。项目当前jdk是1.8,但是报错,遂升级。使用jdk11版本,如果当前不存在的话,直接选择添加,自动下载即可。原创 2025-03-09 09:36:14 · 138 阅读 · 0 评论 -
Android 调用c++报错 exception of type std::bad_alloc: std::bad_alloc
c++代码long int类型在arm64-v8a 64位上会出现类型异常,也会溢出。long int在armeabi-v7a 32位是正常的。1、修改Android.mk文件配置,添加如下语句LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog。所以arm64-v8a上,c++代码long int类型改成int类型。3、使用方法#define LOG_TAG "debug"升级arm64-v8a编译引起的类型长度溢出的问题。2、在.c文件中修改为如下语句。原创 2025-03-09 09:35:07 · 382 阅读 · 0 评论 -
非线性优化--NLopt算法(Android版本和Python示例)
通俗一点来说 非线性优化就是求函数的极值。我们想求一个 函数的极值问题的时候,线性函数是最简单的,因为是线性的嘛,单调增或者单调减,那么找到边界就可以求到极值。例如 f(x)=ax+b。但是对于复杂的非线性函数,或者复杂的数学模型,求导很困难或者无法求导的时候怎么求极值呢?那么就出现了很多非线性优化的算法。来解决对于复杂数学模型的求极值的问题。简单的非线性函数也是很容易求得极值的,例如f(x)=x*x.可以通过求导得到极值点,然后求得其极值。1、 COBYLA无导数局部优化算法使用 python版本。原创 2025-03-06 22:37:18 · 213 阅读 · 0 评论 -
android edittext 防止输入多个小数点或负号
有些英文系统的输入法,或者定制输入法。使用xml限制不了输入多个小数点和多个负号。所以代码来控制。:允许输入正负号;:允许输入小数点;:限制输入的字符为、和。java 代码如下如果是使用 kotlin代码如下:三、结合进行实时校验可以在文本变化时进行更复杂的校验和处理。java代码如下:如果使用kotlin代码:这三种方式一起使用。可以edittext 防止输入多个小数点或负号,可以自定义一个view继承edittext,来方便后面使用。原创 2025-03-06 22:30:11 · 416 阅读 · 0 评论 -
腾讯云物联网平台(IoT Explorer)设备端使用
sdk里面的地址默认是带着产品ID拼接的,咱们现在中铁没有泛域名解析,要改下这里。把+productID都去掉,然后地址里的.也去掉。json数据里面params里面是自定义参数,外面那一层json是固定的。$thing/up/property/ 代表属性上报。原创 2025-03-05 21:57:31 · 286 阅读 · 0 评论 -
AES/CBC/PKCS5Padding加密
解密,如果解密报错长度不够,也可以像加密那样自动加上补0长度。但是补的那部分会乱码。红色框里面要值得留意,需要加密字符串不够位数,自动补全。亲测可以用,跟硬件交互一样使用。原创 2025-03-05 00:08:58 · 149 阅读 · 0 评论 -
Springboot 后台,前端app访问不了,有可能是端口问题
分析如下:我们都知道后台默认端口是8080,那android显示端口是80,那肯定异常。有可能自动分配不了8080端口。这个时候需要android端ip地址加上指定端口8080。1、android前端报错如下。2、接口访问时候,报错信息。原创 2025-03-04 23:49:37 · 43 阅读 · 0 评论 -
android TabLayout设置tab的时候文字默认居中,选中文字加粗
TabLayout设置tab的时候文字默认居中,在TabLayout布局增加以上代码。tab选中文字加粗,需要重写TabLayout的customview进行设置。原创 2025-03-03 21:00:40 · 110 阅读 · 0 评论 -
android 横竖屏适配工作总结
3、还可以创建一个values-land资源文件夹,放dimens.xml。这样只要横竖屏布局没有变化,类似于recycleview控件的item布局,只需要修改控件高度和宽度的话。就不需要再创建一个布局在横屏。只需要dimens.xml控制竖屏和横屏控件高度或者宽度。2、最好使用kotlin语言编写和使用viewBinding绑定控件,可以使用?.判空控件是否存在,不至于缺少这个控件时候直接崩溃。1、创建一个横屏文件夹,复制一份竖屏的布局。只要布局id都有,其他想怎么改就怎么修改。项目资源文件夹一览。原创 2025-03-03 20:51:50 · 207 阅读 · 0 评论 -
android 资源selector写法注意
同样是使用color,但是drawble里面需要</item>标签里面有</shape>标签,shape标签里面可以写背景填充颜色,圆角,边框颜色,边框宽度等等信息,可以使用图片背景等。就是color文件夹和drawble文件夹下面都有一个同名的资源文件。或者drawble文件夹,写法是color资源文件写法。2、res文件夹下面drawble文件夹,放的xml。1、res文件夹下面color文件夹,放的xml。写法是这样的,都是指定color颜色。android 6.0机器上报错。解决办法就是规范写法。原创 2025-03-02 22:35:31 · 211 阅读 · 0 评论 -
is attempting to register while current state is RESUMED. LifecycleOwners must call register before
出现这个问题场景,activity里面有加载fragment,fragment里面有自定义view,自定义view里面init初始化使用了 registerForActivityResult,然后在注册registerForActivityResult崩溃了。registerForActivityResult需要在activity 的oncreate生命周期里面。如果自定义view里面没有办法注册,那么自定义view里面添加一个fragment,用来注册registerForActivityResult。原创 2025-03-02 22:28:36 · 34 阅读 · 0 评论 -
android ViewPager 管理 Fragment的预加载onCreate
ViewPager 来管理 Fragment时,adapter放在onViewCreated进行初始化,如果没有切换fragment进行onViewCreated,adapter直接刷新,那么adapter会是空值。因为有些数据需要提前加载,第一个方便后面数据使用,提前初始化。特别是使用 ViewPager 来管理 Fragment,可以通过设置 ViewPager 的 offscreenPageLimit 属性来控制预加载的页面数量。在此处进行数据的预加载相关的操作,例如初始化数据、预加载网络数据等。原创 2025-02-19 23:05:50 · 281 阅读 · 0 评论 -
kotlin Java 使用ArrayList.add() ,set()前面所有值被 覆盖 的问题
结构体的字段的属性为静态, 意味着该类的所有对象共享同一个属性,所以尽管集合里存的是不同的对象,但是对象的属性还是同一个值 修改其中任何一个,其他的也会“被修改”。使用kotlin语言时候,经常方便写,直接写字段,没有写构造函数。就会容易出现此问题。所以add或者set时候,重新new 一个结构体对象进行添加就可以解决。所以需要写上构造函数,然后重新new 一个对象,防止被修改。原创 2025-02-19 22:55:56 · 211 阅读 · 0 评论 -
Android - Handler使用post之后,Runnable没有执行
原因: 在主线程new一个Handler的时候,默认使用的是当前线程的Looper,就是系统为我们创建好的MainLooper。所以不需要自己在手动写prepare() 和 loop()函数。如果在子线程中创建了一个Handler,那么就必须做三个操作: prepare()、 loop()、quit()解决办法:只有主线程创建的,remove之后,还可以post。所以留意,new Handler时机,是否在主线程。原创 2025-02-18 22:49:19 · 244 阅读 · 0 评论 -
is attempting to register while current state is RESUMED. LifecycleOwners must call register before
android 使用kotlin写的自定义view里面的init函数报错如下:is attempting to register while current state is RESUMED. LifecycleOwners must call register before 出现这个问题场景,activity里面有加载fragment,fragment里面有自定义view,自定义view里面init初始化使用了 registerForActivityResult,然后在注册registerForActiv原创 2025-02-18 22:45:04 · 171 阅读 · 0 评论 -
android setBackgroundResource 不起作用
上次写代码正写着兴奋,发现Java代码setBackgroundResource 设置显示图片居然不起作用,无反应。原来是xml布局用了android:src然后我在xml布局换成android:background。Java代码设置setBackgroundResource 立即起作用。...原创 2019-09-12 21:50:07 · 3442 阅读 · 0 评论 -
android 疑难bug(一)
1、tcp的socket操作全部得在线程操作 Android4.0 以后不允许在主线程进行网络连接,否则会出现 android.os.NetworkOnMainThreadException。因此,必须另起一个线程进行网络连接方面的操作。Android 系统7.0 以上 tcp(socket) 发送数据也是需要线程发送,不然报错NetworkOnMainThreadException 。所以现在s...原创 2018-02-27 22:03:24 · 412 阅读 · 0 评论 -
Greendao SQLiteConstraintException: NOT NULL constraint failed
1、问题报错Android 项目使用greendao库的时候,存储突然报错:android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: SurveyTable.PDOP (code 1299) at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)原创 2021-08-21 11:19:26 · 1714 阅读 · 0 评论 -
Android Program type already present问题解决
最近遇到一个很神奇的问题,一个带有网络框架的项目加入开源聊天的界面报错了。刚开始一直怀疑是appcompat-v7和AndroidX冲突,排查的一番又不是。1、报错的错误如下> Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILEDAGPBI: {"kind":"error","text":"Program type already present: io.reactivex.android.schedul原创 2021-07-27 23:01:30 · 2927 阅读 · 2 评论 -
android Textview属性细节以及EditText属性
一、android Textview属性在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下:在xml中:android:ellipsize="end" 省略号在结尾android:ellipsize="start" 省略号在开头android:ellipsize="middle" 省略号在中间android:e原创 2015-09-19 08:07:36 · 1805 阅读 · 0 评论 -
android 使用AsyncHttpClient框架上传文件以及使用HttpURLConnection下载文件
AsyncHttpClient开源框架android-async-http还是很方便的。 AsyncHttpClient该类通常用在android应用程序中创建异步GET,POST, PUT和DELETE HTTP请求,请求参数通过RequestParams实例创建,响应通过重写匿名内部类 ResponseHandlerInterface的方法处理。1、看代码上传文件 public原创 2016-04-14 23:15:09 · 9001 阅读 · 0 评论 -
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常
android 程序有时写着写着会出现这个异常,然而在项目组的其他成员编译是没有问题。或者是刚导入的项目出现这个问题。正常编译,启动第一个activity出现这个异常。解决办法:肯定是配置有出错,重新配置一下。具体异常信息如下:06-28 17:20:47.025: E/AndroidRuntime(493): FATAL EXCEPTION: main06-28 17:20:47.02原创 2016-07-03 08:30:45 · 3308 阅读 · 0 评论 -
android monkey测试
Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行测试,检测程序多久的时间会发生异常。和MonkeyRunner几乎是完全不同的,MonkeyRunner相当于是搞自动化测试的了。 Monkey 程序由 Android 系统自带,使用 Java 语言写成,在 Android 文件系统中的存放路径是:原创 2017-06-19 20:45:27 · 916 阅读 · 0 评论 -
android 对话框Dialog拦截activity事件通知
在一个activity上面弹出Dialog时候,Dialog拥有页面的事件通知,包括点击,外接等等事件通知。那么有时候这些事件对Dialog来说是没有用的,是给activity使用的。示例:这是一个Activity中的dispatchKeyEvent事件,或者外接刷卡机器监听事件。需要activity处理的。 @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getActio原创 2021-12-10 10:00:28 · 2861 阅读 · 0 评论 -
android 编译签名证书冲突
使用eclipse编译android apk时候,有时候项目切换或者在不同电脑编译会出现下面的错误[2016-11-25 18:14:59 - GnssServer] Re-installation failed due to different application signatures.[2016-11-25 18:14:59 - GnssServer] You must perfo原创 2016-11-25 22:26:17 · 1041 阅读 · 0 评论 -
Android studio gradle 编译错误Input length = 1
报错原创 2021-05-30 15:20:53 · 1515 阅读 · 2 评论 -
android 图片轮播框架banner
Android广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!然后在github上找到图片轮播框架:https://github.com/youth5201314/banner在GitHub下面介绍配合的图片加载框架: /** 注意: 1.图片加载器由自己选择,这里不限制...原创 2019-09-12 22:05:59 · 1214 阅读 · 0 评论 -
android 打造变化多端的SeekBar(垂直和水平)
SeekBar相信用的人不是很多,一般都是用水平SeekBar就可以了。但是之前项目中考虑使用垂直的SeekBar,就要继承重写SeekBar才能用。而垂直SeekBar在百度搜了一下,关于这方面文章还是很少,有一些还是不全面。我又去了github找了一下,找到了一个垂直的效果以及源码,我就写了一个滚动SeekBar翻页listview的数据效果。所以这篇博客中源码下载中,有三个项目源码,干货多多原创 2016-02-27 09:50:31 · 7053 阅读 · 8 评论 -
Android 自定义九宫格控件Gridview用法以及属性
九宫格控件Gridview让人熟悉又陌生,它适配器跟listview差不多,常用都是继承baseAdapt 就能快速完成一个适配器,适配器里面的item也可以根据具体情况来写。那在本博客主要是了解Gridview基本属性,以及自定义Gridview与滚动条ScrollBar共存不冲突的情况、重写dispatchTouchEvent方法禁止GridView滑动。原创 2015-09-19 07:56:33 · 2709 阅读 · 0 评论 -
Android 聊天表情输入、表情翻页带效果、下拉刷新聊天记录
经过一个星期的折腾,终于做完了这个Android 聊天表情输入、表情翻页带效果、下拉刷新聊天记录。这只是一个单独聊天表情的输入,以及聊天的效果实现。因为我没有写服务器,所以没有双方聊天的效果。主要是聊天中表情的选择,发送。表情翻页带有不同的效果。我在主要代码中都写了注释。下面看代码实现。附上本文源码,代码较多。下载地址:点击一、先看实现的效果图二、调用接口以及设置MainAct原创 2015-08-15 07:46:01 · 5067 阅读 · 4 评论