![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
android app开发
app开发相关知识
9527xiha
聚沙成塔,集腋成裘,每天进步一点点
展开
-
Android APP开发:单片机(STM32/GD系列)ISP升级调试注意事项
4.根据支持的指令,针对性调试,读保护 写保护 擦除Flash 擦除全部 写入Flash,必须每条指令都正常返回0x79。3.先调通发0x7F回复0x79,然后发送0x00 0xFF来查询得到MCU的自举程序版本和支持的指令。2.不同型号的MCU拉高boot脚和复位这两步操作的先后顺序可能不一样,以实际测试结果为准。5.验证从发送握手字节0x7F到烧写完成整个流程。1.先试用官方烧录工具验证指令交互顺序和时序。硬件环境:安卓与MCU串口通信。原创 2023-11-23 16:02:25 · 467 阅读 · 0 评论 -
Android app开发:获取卫星定位核心代码-Beidou Gps Glonass Galileo都支持
【代码】获取卫星定位核心代码。原创 2023-07-06 09:16:31 · 1124 阅读 · 0 评论 -
Android app开发:蓝牙socket通信
server端核心代码:public class BluetoothServer implements Runnable { private static final String TAG = "BluetoothServer"; private final Handler mHandler; private final BluetoothSocket mSocket; private InputStream mInputStream; private Output原创 2022-04-08 16:56:23 · 2678 阅读 · 1 评论 -
Android app开发:代码切换移动数据走SIM1/SIM2
权限:<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.MODIFY_PHONE_STATE" tools:ignore="ProtectedPermissions" />反射调用://传入参数:1-SIM1, 2-SIM2findViewById(R.id.btn_原创 2021-10-08 16:50:18 · 2053 阅读 · 0 评论 -
Android app开发:息屏状态下唤醒屏幕
方式1:申请wake_lock唤醒屏幕//权限:<uses-permission android:name="android.permission.WAKE_LOCK" />@SuppressLint("InvalidWakeLockTag")private void wakeUp() { PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); Log.d(TAG, "wj原创 2021-09-15 16:02:41 · 4081 阅读 · 0 评论 -
Android app开发:Camera2 api判断前后摄
public static final int LENS_FACING_FRONT_ID = 0;public static final int LENS_FACING_BACK_ID = 1;private int judgeCameraId() { int ret = 2; try { CameraManager cameraManager = (CameraManager) getSystemService(CAMERA_SERVICE); Str原创 2021-09-14 09:21:21 · 1565 阅读 · 0 评论 -
Android app开发:对findViewById的引用不明确
“错误: 对findViewById的引用不明确,Activity 中的方法 findViewById(int) 和 AppCompatActivity 中的方法 findViewById(int) 都匹配,其中, T是类型变量”相信以上错误很多小伙伴都遇到过,最近本猿也遇到了,一番折腾才解决,特意汇总整理一下常见的解决方案。1.网上最常见的办法是统一各个module的compileSdkVersion,向高版本看齐2.Android Studio->File-Invalidate Caches原创 2020-05-26 16:46:40 · 3691 阅读 · 4 评论 -
Android websocket长连接+点对点订阅
项目中使用到了websocket长连接+点对点订阅,博客记录下。长连接通常使用的是名称叫做STOMP的协议,具体跟服务器端的开发人员确认即可。直接贴干货:module build.gradle添加依赖:compile 'com.github.NaikSoftware:StompProtocolAndroid:1.1.1'compile 'org.java-websocket:Java-W...原创 2018-10-09 12:12:07 · 8626 阅读 · 26 评论 -
Android开发一些优秀的开源框架
本博客特别用来记录发现的github优秀开源框架,全部是star数过千的优质干货!1.下载框架Aria,简单好用的多线程下载框架https://github.com/AriaLyy/AriaFileDownloaderhttps://github.com/lingochamp/FileDownloader2.播放器GSYVideoPlayer,android视频播放器,支持拖动时小窗...原创 2018-12-27 15:57:57 · 853 阅读 · 0 评论 -
Android apk性能优化与工具使用
性能优化一直以来都是一个比较庞大的课题,涉及到的知识面很多。最近特意进行了学习和总结,本文作为一个记录,没有包含全部知识点,只是保留了我个人认为比较常见的。话不多说,发车发车。性能优化主要有3个方面:1.布局2.资源文件3.代码=============================== 分割线 ===============================1.布局1.减少布局层...原创 2019-02-23 11:38:18 · 270 阅读 · 0 评论 -
Android apk开发:不重复造轮子,抽象泛型基类WeakHandler
说起Handler,我们都知道在开发中为了避免内存泄漏,要采取静态内部类+弱引用的形式,并且在onDestroy中调用mHandler.removeCallbacksAndMessages(null);方法移除全部消息。本着不重复造轮子的原则,特意整了一个抽象泛型基类AbstractWeakHandler,便于快速使用。public abstract class AbstractWeakHand...原创 2019-03-07 16:42:07 · 258 阅读 · 0 评论 -
ImageView adjustViewBounds属性
ImageView设置属性android:adjustViewBounds=“true”,用于保持显示的图片的宽高比例不变,即:当宽度/高度变化之后,高度/宽度根据图片本身的宽高比而变化。网上关于ImageView adjustViewBounds属性的文章不少,很多都说android:adjustViewBounds="true"属性要结合maxWidth和maxHeight一起使用。实践是检...原创 2019-03-17 16:49:51 · 831 阅读 · 0 评论 -
Android Studio升级后的一些坑
最近手贱将AS升级到了3.3.2,打开一个旧的工程后遇见一堆问题。以前都是好着的!!!赶上要给客户更新版本,老夫的内心几乎是崩溃的。1.Didn’t find class “android.support.v4.animation.AnimatorCompatHelper”2.No toolchains found in the NDK toolchains folder for ABI ...原创 2019-04-01 14:58:06 · 404 阅读 · 0 评论 -
Android ndk开发-第一个demo
0.工程的local.properties中配置ndkndk.dir=D\:\\AndroidSDK\\ndk-bundlesdk.dir=D\:\\AndroidSDK1.src/main/java/com/example/test中添加Java2CJNI.javapackage com.example.test;/** * Created by forlan on 2019/5...原创 2019-05-29 11:42:07 · 270 阅读 · 0 评论 -
Android踩坑:错误: xxx不是抽象的, 并且未覆盖xxx中的抽象方法onBindViewHolder
最近维护老项目的时候,发现有2个不同界面的gridview使用了同一个adapter,adapter里面list的实体类之前固定写的是String,但是新的需求需要匹配不同的bean,因此需要将adapter抽成基类+2个子类的形式,基类中adapter是静态的,改成使用泛型来匹配不同的bean。三板斧改完后运行,报错:MyAdapter不是抽象的, 并且未覆盖MyAdapter中的抽象方法o...原创 2018-09-04 16:31:31 · 8949 阅读 · 1 评论 -
Android踩坑:小数点变逗号,DecimalFormat格式化数据跟语言环境有关
在项目里面需要将byte转换成KB MB GB,并且保留两位小数,用到了DecimalFormat来格式化数据,如下:DecimalFormat df = new DecimalFormat(&amp;amp;amp;amp;amp;amp;amp;quot;0.00&amp;amp;amp;amp;amp;amp;amp;quot;);return df.format(value);//value为long类型伙计们,这代码看起来完全没毛病,本猿自己测试,数据转换原创 2018-08-16 15:01:36 · 4042 阅读 · 0 评论 -
github上漂亮的android loading动画
感谢大牛们的创造,个人认为目前最漂亮的loading动画应该都可以在这几个项目里面找到。 直接上干货:1.https://github.com/81813780/AVLoadingIndicatorView 2.https://github.com/ybq/Android-SpinKit 3.https://github.com/dinuscxj/LoadingDrawabl...原创 2018-08-02 14:46:40 · 33660 阅读 · 6 评论 -
android OpenGL的一些知识
Android 3D引擎采用的是OpenGL ES。OpenGL ES是一套为手持和嵌入式系统设计的3D引擎API。 在PC领域,一直有两种标准的3D API进行竞争,OpenGL和DirectX。一般主流的游戏和显卡都支持这两种渲染方式,DirectX在Windows平台上有很大的优势,但是OpenGL具有更好的跨平台性。 由于嵌入式系统和PC相比,一般说来,CPU、内存等都比PC差原创 2016-08-06 09:49:27 · 424 阅读 · 0 评论 -
Dialog样式的activity
在Android开发中,有时候需要用到弹框样式的activity,简单总结如下: AndroidManiFest.xml中声明所使用的style:<activityandroid:name=".DialogActivity"android:theme="@style/dialog_activity"></activity> styles.xm...原创 2018-07-16 18:17:46 · 848 阅读 · 0 评论 -
Textview匹配关键字并高亮显示
最近在项目中做搜索的时候,设计师给了关键字高亮的效果图。直接上干货,实现如下:public static void setSpecifiedText(TextView textView, String specifiedText) { String[] keyword = new String[]{specifiedText}; SpannableStrin...原创 2018-07-16 18:28:19 · 1020 阅读 · 0 评论 -
Android中获取指定日期是星期几
private int getDayofWeek(String dateTime) { Calendar cal = Calendar.getInstance(); if (dateTime.equals("")) { cal.setTime(new Date(System.currentTimeMillis())); } else { ...原创 2018-07-16 18:32:44 · 4615 阅读 · 1 评论 -
Android json解析两个很有用的网址
json格式校验https://www.bejson.com/json对象转换成java bean直接下载使用即可,非常方便 http://www.bejson.com/json2javapojo/new/原创 2018-07-23 11:12:55 · 218 阅读 · 0 评论 -
EditText input属性大全
android:inputType=”none” android:inputType=”text” android:inputType=”textCapCharacters” 字母大写 android:inputType=”textCapWords” 首字母大写 android:inputType=”textCapSentences” 仅第一个字母大写 android...原创 2018-07-23 16:41:33 · 693 阅读 · 0 评论 -
Android 消息机制——你真的了解Handler?
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布前言Questions1. Looper 死循环为什么不会导致应用卡死?2. 主线程的消息循环机制是什么?3. ActivityThread 的动力是什么?4. Handler 是如何能够线程切换5. 子线程有哪些更新UI的方...转载 2018-07-18 09:03:18 · 141 阅读 · 0 评论 -
fragment替换布局注意事项
替换的布局如果是垂直的线性布局的话,新的fragment将会显示在替换的布局下方,最好使用相对布局可能遇到问题:替换fragment后显示不完整解决办法:在fragment的onCreateView里面重新设置LayoutParamsview.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParam...原创 2018-07-19 10:55:31 · 1816 阅读 · 0 评论 -
Android系统恢复出厂设置方法-涵盖5.1 6.0 7.0 7.1 8.0 9.0
最近在8.0系统上面调试公司自主开发的setting,发现无法恢复出厂,原来在7.1 7.0 6.0 5.1上面使用的广播已经没有效果,查阅8.0的原生Settings源码之后发现恢复出厂的代码在8.0上面已经偷偷摸摸地换成了用另外一个广播android.intent.action.FACTORY_RESET。原来如此。特将恢复出厂的方法总结如下:public static void st...原创 2018-07-20 11:53:44 · 6123 阅读 · 18 评论 -
Android获取系统信息-android.os.Build类
android.os.Build类是一个非常方便使用的类,不需要任何权限。说明如下:android.os.Build.BOARD:获取设备基板名称 android.os.Build.BOOTLOADER:获取设备引导程序版本号 android.os.Build.BRAND:获取设备品牌 android.os.Build.CPU_ABI:获取设备指令集名称(CPU的类型) andro...原创 2018-07-20 12:08:28 · 9310 阅读 · 0 评论 -
Android Studio编译问题:Android dependency has different version for the compile and runtime
这两天编译旧的项目,遇到了com.android.support:support包错误Android dependency has different version for the compile and runtime。项目包含多个module,太多依赖很是蛋疼,新版本AS打开使用旧版本AS+gradle插件创建的工程真是各种坑。搜索了半天,网上说的方法有的是挨个改module里面的依赖包版本...原创 2018-07-27 10:02:00 · 6236 阅读 · 1 评论 -
Android踩坑:使用file.exists()判断已有文件存在始终返回false
最近在项目上遇到个略微蛋疼的问题,系统apk里面居然没法通过file.exists()来判断指定的某个文件存在,查看打印,结果file.exists()返回的居然始终是false,实际上此文件确实是存在的,wtf……要知道这是系统apk呀,还是priv-app目录下面的apk!思来想去,目录是对的,文件的读写权限也是正确的,这就邪门了???突然想起来是不是可以看看AndroidManiFest...原创 2018-07-31 22:43:12 · 24167 阅读 · 12 评论