Android开发
文章平均质量分 52
Huangrong_000
这个作者很懒,什么都没留下…
展开
-
Linux常用命令梳理
一、常用命令0、清屏clear,快捷键ctrl+l1、查看当前路径pwd2、创建目录mkdirmkdir -p /files/209 创建当前及子目录3、删除文件rmrm -rf temp,删除文件夹及所有子目录4、显示文件信息lsls等同于ls -h,当前目录所有文件名显示ls -l等同于ll,显示文件及文件属性ls -lR按层级显示当前目录及子目录的文件详细信息ls -al 显示文件及文件属性及总用量5、编辑文件catcat test,编辑test文件cat > te原创 2021-03-22 15:00:57 · 248 阅读 · 0 评论 -
Android自定义EditText修改粘贴来的内容
问题描述EditText输入框控件,用户长按可以使用系统自带的复制粘贴等功能,项目实现中,有个小需求,对于粘贴过来的内容,需要解密后在edittext的文本区域展示,怎么处理呢?简单分析EditText继承于TextView,它本身没有多少代码,大部分逻辑都是在TextView中,搜索“paste”找到了和粘贴相关的代码:@Override public boolean ...原创 2018-09-05 09:08:40 · 2837 阅读 · 0 评论 -
Android应用发布前加混淆及注意事项
代码混淆代码混淆的是Java代码,无法混淆Native代码,资源文件drawable、xml等。1、作用:代码压缩、代码混淆以及资源压缩等的优化过程; 代码压缩:混淆流程将主项目以及依赖库中未被使用的类、类成员、方法、属性移除,这有助于规避64K方法数的瓶颈混淆: 将类名、属性名、方法名混淆为难以读懂的字母,比如a,b,c资源压缩:移除项目及依赖的库中未被使用的资源。...原创 2018-09-02 14:05:42 · 1736 阅读 · 0 评论 -
Android中使用@IntDef @Retention @StringDef
在Android开发中官网不推荐使用枚举enums。为什么呢?占用内存多(Enums often require more than twice as much memory as static constants.)。 Android中当你的App启动后系统会给App单独分配一块内存,App的DEX code、Heap以及运行时的内存分配都会在这块内存中。例如:publi...原创 2018-08-28 17:06:06 · 1825 阅读 · 0 评论 -
git下载google android源码遇到两个报错
git下载google android源码遇到两个报错1、fatal: unable to access 'https://flutter.googlesource.com/gallery-assets/': Failed to connect to flutter.googlesource.com port 443: Operation timed out #16694解决:先执行命令g...原创 2018-08-20 14:05:31 · 1005 阅读 · 0 评论 -
Android通过反射获取和回收运行时权限—调用grantRuntimePermission和revokeRuntimePermission方法
本文转载:https://www.jianshu.com/p/59d542f4b03b需要实现Android应用权限管理()需求:不需要用户点击允许按钮直接获取READ_PHONE_STATE等权限分析:因为用户可以在手机中通过打开设置-应用-选择具体应用-权限界面,手动打开用户所需要的权限(界面效果如图),我就想我怎么样可以在代码中模拟点击按钮打开权限的操作,于是我就去查看源码。...转载 2018-08-20 13:48:08 · 4789 阅读 · 3 评论 -
Android渐变色状态栏和沉浸状态栏
1、项目中需要在开机图时去掉状态栏(1)实现方法如下: 在setContentView之后设置 //去掉状态栏 if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option ...原创 2018-08-08 10:18:05 · 3420 阅读 · 5 评论 -
Android studio中duplicate entry: com/google/zxing/Writer.class
在Android studio中引入zxing依赖,如下:compile('com.journeyapps:zxing-android-embedded:3.6.0') { transitive = false }//生成二维码依赖compile ('com.google.zxing:core:3.3.0')//zxing核心依赖编译运行时出现以下错误:Error:Execution faile...原创 2018-04-11 13:50:45 · 1274 阅读 · 0 评论 -
Installation failed with message INSTALL_FAILED_TEST_ONLY
从GitHub上下载了个Ddmo,编译时出现以下错误提示:Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Android Studio this means version 3.0+ 之前也有遇到过此类问题,我用的Android Studio2.3.3,为了项目合...原创 2018-04-03 09:43:01 · 2177 阅读 · 0 评论 -
使用Android Studio的Dump Java Heap和MemoryAnalyzer分析内存泄漏
如何检测和分析内存泄漏?我们在项目开发过程中就一直使用的LeakCanary检测内存泄漏,附上链接:https://github.com/square/leakcanary ,这个特别棒,在开发阶段发现内存泄漏就能实时更改了,避免了到项目后期再花费时间额外排查内存泄漏,就是这么溜!一、说说使用Android Studio自带的Dump Java Heap如何排查内存泄漏,或者优化内存使用情...原创 2018-09-05 15:48:42 · 8369 阅读 · 0 评论 -
Android App瘦身实践
App临发布前需要做一次瘦身工作,下面就简单记录下我的app瘦身的实践过程。开发中项目就只使用了一套资源,xxhdpi目录下放的1080X1920的图片资源,打包后Apk大小:29.4M瘦身前29.4M,开始瘦身1. 删除不用的资源文件(drawable资源,string资源,dimenx资源,raw资源)自动删除:选中res——右键——Refactor——Remove...原创 2018-09-13 11:02:55 · 606 阅读 · 0 评论 -
build.gradle 详解
简述:1) Java 开发中有两个大名鼎鼎的项目构建 ANT、Maven。2) Google 推荐使用的 Android studio 是采用 Gradle 来构建项目。Gradle 是一个非常先进的项目构建工具。Gradle 是用了一种基于 Groovy 的领域特定语言(DSL,Demain Specific Language)来声明项目设置,摒弃了 XML(如 ANT 和 Maven)的...转载 2019-10-11 10:49:23 · 1279 阅读 · 0 评论 -
Android手机红外开发—点击和长按事件
上一篇文章《红外技术及Android手机红外遥控器开发》中简单介绍了红外遥控技术和Android 手机红外遥控开发操控中的点击事件,只需要按照编码协议规则对键值等进行编码解析,最后转化成数组形式表示的电平信号,调用Android红外技术API发送电平信号数组即可。但是在实际开发过程中,不仅需要实现点击按键模拟遥控器短按,也需要模拟遥控器的长按操作。那遥控器的长按操作发送的波形电平信号又是怎样的呢...原创 2019-08-30 10:26:04 · 1845 阅读 · 1 评论 -
ReactNative调用android原生View
RN开发过程中,React Native是将原生控件封装桥接成JS组件来使用的,这保证了其性能的高效性。但是有时候官方封装的常用组件不能满足需求,就需要结合原生UI使用,例如:对原生实现的UI复用;复杂UI仍然需要原生自定义View实现。接下来就简单记录下RN开发过程中调用原生UI的流程。例如下面这个UI效果,就需要用到Android原生自定义View实现:以上图实现效果为例,分别从Andr...原创 2019-08-26 17:52:11 · 1138 阅读 · 0 评论 -
Android之Canvas绘制图形
本文转自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.htmlAndroid中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas转载 2019-08-26 15:10:03 · 297 阅读 · 0 评论 -
Android中View的继承关系图
转载 2019-08-15 10:10:25 · 920 阅读 · 1 评论 -
红外遥控及Android手机红外遥控器开发
一、红外遥控红外遥控技术是通过红外技术、红外通信技术和遥控技术的结合实现的一种无线控制技术。由于红外线的波长较短,对障碍物的衍射能力较差,无法穿透墙壁,所以红外遥控术更适合应用在短距离直线控制的场合,也正是这样,放置在不同房间的家用电器可使用通用的遥控器而不会产生相互干扰。红外遥控所需传输的数据量较小,一般仅为几个至几十个字节的控制码,传输距离一般小于 10 米,因其功耗小、成本低、易实现等诸...原创 2019-08-09 17:07:08 · 22217 阅读 · 11 评论 -
Firebase引用版本冲突解决:Android dependency 'com.google.android.gms:play-services-basement' has different
前两天在RN项目中集成原生的firebase,之后报错插件版本冲突,报错信息如下:What went wrong:Execution failed for task ‘:app:preDebugBuild’.Android dependency ‘com.google.android.gms:play-services-basement’ has different version f...原创 2019-03-05 10:31:46 · 7351 阅读 · 0 评论 -
Android Studio中我都用了哪些插件
● 1、ECTranslation介绍:翻译插件,可以将英文翻译为中文,中文翻译为英文使用:右键—Translate结果:英文—中文结果:中文—英文● 2、Android ButterKnife Zelezny介绍:辅助butterknife生成注解,从此不用写findViewById,在Activity,Fragment,Adapter中选中布局xml的资...原创 2018-09-13 19:06:53 · 546 阅读 · 0 评论 -
Android Studio通过build.gradle区分多个apk
主要就是在moudle下的build.gradle文件中添加以下配置:android { compileSdkVersion 25 buildToolsVersion "25.0.1" lintOptions { abortOnError false } defaultConfig { applicatio原创 2018-01-26 14:22:05 · 497 阅读 · 0 评论 -
android切换语言后刷新页面
关于更改APP语言,我的大致思路是:提供设置和获取APP语言的方法,并在sp中保存,初次默认使用系统语言;APP内设置语言后保存在sp中,摒弃直接重启APP的方法,不立即跳转页面并且刷新当前页面,跳转到对应的页面再根据真正的设置结果进行相应界面的刷新;此处注意,跳转之后判断是否真正进行了语言的切换,避免页面的重复刷新,这样实现灵活切换APP语言,给用户一个更好的体验效果。更改系统语言后刷...原创 2017-10-24 14:38:30 · 8183 阅读 · 4 评论 -
adb server is out of date. killing...
1:今天调试android的时候发现一个诡异的问题[html] view plaincopyprint?C:\Users\xxxx>adb start-server adb server is out of date. killing... ADB server didn't ACK * failed to start daemon * C:\U转载 2014-04-10 23:23:03 · 845 阅读 · 0 评论 -
Android tabHost使用小结
TabHost是多标签控件,包含多个Tab 使用方法一: 新建Activity继承TabActivity,利用其方法生成TabHost 1,继承自TabActivity类 2,getTabHost()获取TabHost实例 3,LayoutInflater.from(this).inflate(界面布局Id, tabHost.getTabContentView(), t转载 2014-04-30 10:10:55 · 530 阅读 · 0 评论 -
android adb启动失败问题 adb server is out of date. killing... ADB server didn't ACK * failed to start daem
打开Eclipse,真机连接之前,是要启动adb的,突然发现就失败了。错误如下--》adb server is out of date. killing... ADB server didn't ACK * failed to start daemon *第一猜想,就是adb的端口号被占用了。随机--一.查看是否是豌豆荚或者手机助手占用了端口号,但是发现没有。二.转载 2013-11-01 22:00:10 · 750 阅读 · 0 评论 -
eclipse下axis2创建web service(三)
这节我们就来写一个客户端来调用一下这个服务。主要关注一下如何用elispe的axis2的插件来生成stub代码。1.在eclispe 的package Explorer 中点击右键,在菜单中选择新建--->other...----->Axis2 Code Generator2.点击next,进入下一个页面,选择从wsdl文件来产生java文件。3. 点击next转载 2013-09-27 18:10:49 · 610 阅读 · 0 评论 -
eclipse下axis2创建web service(四)
上节我们做了一个简单的例子,调用的服务里的方法只是简单返回一个字符串,这次我们要做一个复杂点的例子,调用服务里的方法返回一个java Bean对象。 1. 首先做一个简单的java bean ,代码如下Java代码 package com.deltaj.server; public class Persion {转载 2013-09-27 18:18:15 · 673 阅读 · 0 评论 -
eclipse下axis2创建web service(二)
工具都已经准备齐全了。我们来动手做一个小例子来小试牛刀!这一节我们先利用axis2来发布一个web service 的服务,然后在下一节我们做一客户端来调用这个服务。我们的服务很简单的,就是输入一个字符串,然后打印出一段字符串。代码很简单,主要是测试用。Java代码 package com.deltaj.server; public clas转载 2013-09-27 18:07:55 · 958 阅读 · 0 评论 -
Android开发环境配置图文教程(jdk+eclipse+sdk)
一 相关下载(1) java JDK下载:进入该网页: http://java.sun.com/javase/downloads/index.jsp (或者直接点击下载)如下图:选择 Download JDK 只下载JDK,无需下载jre. (2)eclipse下载进入该网页: http://www.eclipse.org/downloads转载 2013-09-27 17:57:54 · 1017 阅读 · 0 评论 -
eclipse下axis2创建web service(一)
axis2创建web service(一) 作者:张涛 axis2 是新一代的web service开发工具,它会让你的web service开发变得轻松,快捷。下面让我们以一个实际的例子来体验一下。首先,工欲善其事,必先利其器。就让我们先做好一些必备的准备工作吧。1.下载转载 2013-09-27 18:04:13 · 731 阅读 · 0 评论 -
C#开发android—访问应用程序的app文件及data文件
public class Activity1 : Activity { File app; File data; string spacename; string appname; //Java.IO.File filetxt = new Java.IO.File(saveDir + "/123.原创 2014-06-09 17:50:40 · 904 阅读 · 0 评论 -
[Xamarin]测试账号申请与到期后如何续用
在Xamarin网站上可以申请30天试用的测试账号。试用期内,Xamarin会提供完整的功能试用。30天试用时间到期后,在Visual Studio里面你加载你的项目的时候,项目旁会标注(无法使用)。如下图:[] 在没有购买License而测试账号又到期的情况下,你的项目是没有办法被载入的。[] 如果尝试重载项目,Xamarin会弹出提示窗口要求你购买License转载 2014-06-09 18:11:41 · 1232 阅读 · 0 评论 -
Android Studio集成Library时报错,终极解决方法
Android Studio集成Library时报错,终极解决方法 Error:Execution failed for task ':zhxa:processDebugManifest'.> Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(25.3.1) f...原创 2017-08-25 10:38:22 · 1413 阅读 · 0 评论 -
popwondows简单用法
PopupWindow,可以在当前屏幕的上层的显示一个弹窗,这个弹出框是悬浮在当前activity之上的,可以指定弹窗的位置以及背景色等特性,可以使用任意布局的View作为其内容。private void showPopupWindow(View view) { LayoutInflater mLayoutInflater = (LayoutInflater)getSystemService原创 2016-08-14 23:53:29 · 309 阅读 · 0 评论 -
NFC相关
一、关于三个action当标签调度系统完成对NFC标签和它的标识信息封装的Intent对象的创建时,它会把该Intent对象发送给感兴趣的应用程序。如果有多个应用程序能够处理该Intent对象,就会显示Activity选择器,让用户选择Activity。标签调度系统定义了三种Intent对象,以下按照由高到低的优先级列出这三种Intent对象: ACTION_NDEF_DISCOVERED: 这转载 2016-08-14 23:25:31 · 305 阅读 · 0 评论 -
Android定位的实现
注:本文中代码使用的是c#语言,是在visual studio2012+xamarin下实现的,给自己做的备份。实现步骤:a. 开启手机定位相关设置并设定位参数b. 获取当前bestprovider,尝试通过getLastKnownLocation获取上次定位信息并显示c. 开启监听线程,监听位置提供者是否变化d. 如有变化,关闭当前监听,获取新的bestprovider获取上次定位信息并显原创 2016-08-16 16:49:12 · 5569 阅读 · 0 评论 -
android 软键盘 InputMethodManager
1、需要强制隐藏或显示Android输入法键盘时,下边这个是让输入法状态发生逆转,如果当前未显示则显示出来,如果显示出来则隐藏。 //设置键盘输入状态 InputMethodManager imm = (InputMethodManager)GetSystemService(Activity1.InputMethodService)原创 2015-10-17 11:02:12 · 1213 阅读 · 0 评论 -
android两种定时器实现
一、定时循环执行 private static Handler handler = new Handler(); private static Runnable runnable = new Runnable(new Action(run)); private static void run() { /原创 2015-10-17 12:52:20 · 501 阅读 · 0 评论 -
C#开发Android-文件的读写
////file = new SundryClass.FileClass(); //Java.IO.File dirv = new Java.IO.File(filepath); //if (!dirv.Exists())//工作目录是否存在? //{ // dirv.Mkdir();/原创 2014-07-06 16:29:03 · 4887 阅读 · 1 评论 -
Android通过webservice连接sqlserver数据库
教程会拿一个具体的例子来讲,一步一步来,也许细节上还可以继续加工,但大致的流程就是这样的。 本教程有五个部分:项目说明开发环境部署数据库设计服务器端程序设计客户端(android端)程序设计项目说明 这个项目意在实现一个简单的android连接Sqlserver的功能。 就做一个简单的库存管理功能,包括对仓库内现有货物转载 2013-11-13 21:04:20 · 3884 阅读 · 3 评论 -
Android开发环境搭建
一 、java jdk安装1.下载并安装Java Jdk;2.配置Java Jdk右击 “我的电脑”->属性->高级->环境变量->系统变量->新建第一步:变量名:JAVA_HOME变量名:C:\jdk1.6.0_10第二步:变量名:classpath变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar第三步:变原创 2013-09-24 23:21:06 · 626 阅读 · 0 评论