Android 基础
文章平均质量分 63
SmallMartin
善于思考总结的人成就总不会太差。
无忧之路业精于勤荒于嬉 行成于思毁于随
展开
-
Android 打开第三方APP
Android app 打开第三方APP有以下几种方式1.包名拉起 val intent = packageManager.getLaunchIntentForPackage("com.example.testappb") startActivity(intent)优点:方便省事缺点:暴露包名,如果对方隐藏图标,获取不到intent2.包名 特定activity拉起 val intent = Intent(Int原创 2021-04-14 21:48:51 · 3473 阅读 · 2 评论 -
Could not resolve all files for configuration ‘:debugCompileClasspath‘.
一个旧项目,打开突然就不行了,一直报错Could not resolve all files for configuration ':media:debugCompileClasspath'。。。。。。网上找了一大圈 都没寻找到解决方案,快放弃了终于在https://www.jianshu.com/p/9de30197b528这位老哥这找到了一个方法allprojects { repositories { mavenLocal() maven {原创 2020-11-11 10:34:16 · 4915 阅读 · 1 评论 -
android 安装包反编译以及重新打包
一.反编译1.下载工具包官网下载:https://ibotpeaches.github.io/Apktool/install/貌似有时候无法下载bat ,请参照bat下载2.创建一个文件夹放两个工具(修改jar包的名字),将要编译的apk也放进去3.开始编译利用cd命令将命令行模式进入刚刚创建的这个文件夹下然后使用apktool d **.apk 命令,成功后会得到如下图一个文件夹(不成功的请检查环境)4.解析源代码前三步的操作主要是来解析资源res和资源A...原创 2020-09-11 14:25:15 · 1704 阅读 · 0 评论 -
apktool.bat 无法下载的解决方案
创建一个apktool.bat的空文件把下面的代码复制进去@echo offsetlocalset BASENAME=apktool_chcp 65001 2>nul >nulset java_exe=java.exeif defined JAVA_HOME (set java_exe="%JAVA_HOME%\bin\java.exe")rem Find the highest version .jar available in the same dire原创 2020-09-10 14:42:21 · 4268 阅读 · 6 评论 -
扫描二维码登录
原创 2020-09-04 10:23:45 · 5072 阅读 · 2 评论 -
JAVA基本语言元素
一.Java关键字:包相关:package:定义包 ;import:导入包 ; 访问修饰符:public(公有访问修饰符):被声明为 public 的类、方法、构造方法(或叫构造器)和接口能够被任何其他类访问;protected(受保护的访问修饰符):子类与父类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何类访问; 子类与父类不在同一包中:在子类中,子类实例可以访问从父类中继承而来的 peotected 方法,不能访问父类实例的 protected 方法;priv原创 2020-08-31 14:44:35 · 366 阅读 · 0 评论 -
一款 玩Android 客户端
基于玩Android 开放API开发设计的一款app一些效果图如下:项目地址 :https://gitee.com/zhou_xingxing_007/EnjoyAndroid下载地址 :http://d.firim.info/k1w3原创 2020-08-27 13:56:28 · 443 阅读 · 0 评论 -
Retrofit快速使用GET
封装接口公共部分public class Api { public static String api1="http://service.meiyinkeqiu.com/"; public static String api2="http://gank.io/api/"; public static String api3="http://www.93.gov.cn/93app/";}GET有参无参拼接 接口 App1 App2 App3分别代表三个bea..原创 2020-08-19 15:28:17 · 1033 阅读 · 0 评论 -
TextView跑马灯效果(解决显示不全我问题)
1、在xml的Text控件内添加如下代码 android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever"2、在Activity或者Fragment或者Adapter内添加如下代码: tvDeviceName.setSelected(true);...原创 2020-08-18 17:32:19 · 905 阅读 · 0 评论 -
Static interface methods are only supported starting with Android N (--min-api 24):
提示的意思是 最小api应为24 , 实验 将最小 api版本改为26后, 能在 Android O 的设备上运行,但是由于App 肯定不能只适配 8.0以上的设备 , 所以还得另寻方法最后发现这问题都是因为没有指定jdk 1.8而产生的在app build:gradle 中的android 下添加 指定jdk版本的代码,如下:android { ...... //指定jdk版本 compileOptions { sourceCompatibil.原创 2020-08-11 16:51:30 · 235 阅读 · 0 评论 -
Android设置屏幕保持长亮
实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明,一种是在代码里面修改LayoutParams的标志位。具体如下:1、在Manifest.xml文件里面用user-permission声明。代码如下:这种方法,在安装apk时,系统会提示安装人是否允许使用禁止休眠功能。<uses-permission android:name="android.permission.WAKE_LOCK" />为了不对其他程序造成影响,启用和关闭屏幕常亮的代码一般被放在 Ac原创 2020-07-21 11:06:37 · 2105 阅读 · 2 评论 -
NestedScrollView 嵌套RecyclerView 分页加载无效(一次性加载)
解决方法:嵌套滑动不激活。recycleView.setNestedScrollingEnable(false);这样做有个弊端,RecycleView的item会一次性加载完,不管是否显示,如果item比较多的话不建议这样使用布局,如果再有下拉刷新,这种布局设计是非常糟糕的。只使用RecycleView,通过设置item类型来显示要展示的布局 ,添加header...原创 2020-06-22 15:28:03 · 1633 阅读 · 0 评论 -
Android Studio 常用插件
GsonFormat快速将json字符串转换成一个JavaBean.Android Code Generator根据布局文件快速生成对应的Activity,Fragment,Adapter,Menu.Android Parcelable code generatorJavaBean快速实现Parcelable接口.Lifecycle Sorter据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序.CodeGlance右边预览代码,实现快速定位.A...原创 2020-06-17 14:25:00 · 216 阅读 · 0 评论 -
Android播放器开源项目
1.ijkplayer项目地址:https://github.com/Bilibili/ijkplayer介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API 易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供 Android 平台下应用弹幕集成的解决方案。2.ExoPl...转载 2019-12-27 16:39:01 · 364 阅读 · 0 评论 -
Android app设置为系统应用
在项目开发时,如果需要使应用具有系统权限,例如可以支持静默安装和卸载APK,此时就需要使用系统签名。常用的系统签名方式包括在ubuntu环境下、手动签名和在AndroidStudio环境配置,三种方式中,实现最简单的是通过AndroidStudo方式,该方式的签名实现与正常的APK签名相同,唯一不同的就是签名文件是通过系统生成的。注意,无论采用何种签名方式,如果想实现具有系统权限的应用,在AP...转载 2019-12-12 16:43:31 · 3943 阅读 · 0 评论 -
Android 关机 重启设备
1.重启安卓系统需要系统权限,需要把应用设置成系统应用设置成系统应用有很多种方法,我这里用最简单的一种,用系统签名生成系统应用。不知道如何设置的 可以看看这篇文章https://blog.csdn.net/qq_34115898/article/details/1035118102.然后在xml 添加权限 android:sharedUserId="android.uid....原创 2019-12-12 16:05:11 · 362 阅读 · 0 评论 -
Android app 获取SHA1值
一.在代码中获取app的sha1值,需要手动添加 :号public static String getSHA1(Context context) { try { PackageInfo info = context.getPackageManager().getPackageInfo( context.getPackageNam...原创 2019-12-12 15:41:02 · 1021 阅读 · 1 评论 -
Android 代码设置网络开关
需要添加权限<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><uses-permission android:name="and...原创 2019-12-06 14:07:32 · 989 阅读 · 0 评论 -
android 自动弹起键盘
因为需求,进入页面要你自动弹出键盘查了资料,试了发现无论怎么改方法都不能 弹出最后给控件加了定时器,延时1秒,居然可以了private void showKeyboard(Context context, final View view){// 必须给控件加这个方法,否则无效 view.requestFocus(); Timer timer = new Timer...原创 2019-09-23 18:13:33 · 1094 阅读 · 0 评论 -
BaseMultiItemQuickAdapter 条目position获取
使用 BaseRecyclerViewAdapterHelper 框架,在使用多类型条目或者伸展类型时候发现一个问题上面左右两个图分别是 次级列表关闭展开转态下 点击level 0 第二个条目时 获得的position int pos = holder.getAdapterPosition(); Log.d(TAG, "Level 0 item pos: " + pos); To...原创 2019-08-27 10:49:46 · 4554 阅读 · 3 评论 -
android webview 添加加载错误提示
在setWebViewClient中重写这几个方法 @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); ...原创 2019-08-07 11:51:19 · 594 阅读 · 0 评论 -
APP测试
1.功能性测试:——根据产品需求文档编写测试用例。——软件设计文档编写用例。注意:就是根据产品需求文档编写测试用例而进行测试。2.兼容性测试:——android版本的兼容性——手机分辨率兼容性——网络的兼容性:2G\3G\4G\WIFI,弱网下、断网时——app跨版本的兼容性1.适配性测试:1>.手机不同分辨率支持:客户端支持的分辨率等2>....转载 2019-08-02 11:13:35 · 247 阅读 · 0 评论 -
Android apk瘦身
https://blog.csdn.net/qq_32175491/article/details/80071987转载 2019-07-24 11:28:07 · 201 阅读 · 0 评论 -
动态获取网络状态,灵活配置显示内容(一站式到家服务)
废话不说,直接上代码父类protected StateLayoutManager statusLayoutManager; private BroadcastReceiver broadcastReceiver = new InternetBroadcastReceiver(this); @Override protected void onCreate(@Nul...原创 2019-07-22 16:19:37 · 293 阅读 · 0 评论 -
自带长度提示的Edittext
public class MaxLengthEditText extends android.support.v7.widget.AppCompatEditText { public MaxLengthEditText(Context context, AttributeSet attrs) { super(context, attrs); initLe...原创 2019-07-19 13:18:06 · 255 阅读 · 0 评论 -
FragmentPagerAdapter和FragmentStatePagerAdapter的区别
FragmentPagerAdapter1:简单的介绍:该类内的每一个生成的 Fragment 都将保存在内存之中,因此适用于那些相对静态的页,数量也比较少的那种;如果需要处理有很多页,并且数据动态性较大、占用内存较多的情况,应该使用FragmentStatePagerAdapter2:重写的几个方法:getItem() 该类中新增的一个虚函数。函数的目的为生成新的Fragm...原创 2019-07-18 12:57:42 · 334 阅读 · 0 评论 -
安装包解析异常(加固后)
最近碰到一个bug ,打生产包安装测试没有问题,加固后 安装 会出现解析异常。对比后发现7.0以上会出现这个问题查看日志InstallStaging:Error staging apk from content URIPermission Denial: reading android.support.v4.content.FileProvider uri content://cn.c...原创 2019-06-24 13:36:46 · 2256 阅读 · 0 评论 -
Edittext获取焦点并弹出软键盘
问题一:edittext 不能自动获取焦点 无法弹出软键盘/** * EditText获取焦点并显示软键盘 */ public static void showSoftInputFromWindow(Activity activity, EditText editText) { editText.setFocusable(true); editText.se...原创 2019-06-06 10:32:45 · 19784 阅读 · 1 评论 -
webview 滑动状态监听
目前功能需要监听webview的滑动状态,但是webview本身没有滑动监听谷歌在API23版本 为View添加了一个方法/** * Register a callback to be invoked when the scroll X or Y positions of * this view change. * <p> * <b>Not...原创 2019-05-29 17:37:34 · 3089 阅读 · 0 评论 -
Android WebView用法
1.简介WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。2.作用·显示和渲染Web页面·直接使用html文件(网络上或本地assets中)作布局·可和JavaScript交互调用WebView控件功能强大,除了具有一般View的属性和设置外,还...转载 2019-05-22 09:54:40 · 1913 阅读 · 0 评论 -
Mac环境xxx.app已损坏,打不开。你应该将它移到废纸篓
下载了一些程序之后,却发现无法在MAC中安装,安装时会弹出下图所示警告框:“打不开 xxx,因为它来自身份不明的开发者”。那么该如何解决这个问题呢?在MAC下安装一些软件时提示"来自身份不明开发者",其实这是MAC新系统启用了新的安全机制。默认只信任Mac App Store下载的软件和拥有开发者 ID 签名的应用程序。换句话说就是 MAC 系统默认只能安装靠谱渠道(有苹果审核的Ma...原创 2019-05-05 10:18:28 · 376 阅读 · 0 评论 -
Android Binder 进程间通讯机制
Android-Binder进程间通讯机制相关系列一篇文章看明白 Android 系统启动时都干了什么一篇文章了解相见恨晚的 Android Binder 进程间通讯机制一篇文章看明白 Android 从点击应用图标...转载 2019-04-28 15:03:35 · 193 阅读 · 0 评论 -
Android AIDL使用
AIDL定义AIDL (Android Interface Definition Language) 是一种接口定义语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数,来完成进程...原创 2019-04-28 14:48:17 · 238 阅读 · 0 评论 -
设计模式之代理模式
代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。优点:1、职责清晰。 2、高扩展性。 3、智能化。缺点:1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作,有些代理模式的...原创 2019-04-26 16:48:29 · 247 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。优点1、观察者和被观察者是抽象耦合的。2、建立一套触发机制。缺点1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。2、如果在观察者和观察目标之间有循环依赖的话...原创 2019-04-25 16:13:10 · 214 阅读 · 0 评论 -
如何看待哔哩哔哩(B站)的后端代码主仓库被上传至了GitHub?
https://www.zhihu.com/question/321235026/answer/659682220原创 2019-04-22 18:13:55 · 2591 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。刚入门的时候,其实对建造者没什么理解,基本没用过。后来见过的猪多了,逐渐懂了建造者的好处。它可以将一个复杂的对象的创建过程分成n...原创 2019-04-19 14:36:19 · 219 阅读 · 0 评论 -
Android网络通信之Socket
Socket即套接字,是应用层 与TCP/IP/udp协议族通信的中间软件抽象层,表现为一个封装了 TCP / IP协议族 的编程接口(API)。所以Socket不是一种协议,而是一个编程调用接口(API),属于传输层(主要解决数据如何在网络中传输)。底层原理Socket的使用类型主要有两种:流套接字(streamsocket) :基于TCP协议,采用流的方式提供可靠的...原创 2019-04-10 10:48:23 · 394 阅读 · 0 评论 -
Http之HttpURLConnection
HttpURLConnectionSun公司提供的库,也是Java的标准类库java.net中的一员,但这个类什么都没封装,用起来很原始,若需要高级功能,则会显得不太方便,比如重访问的自定义,会话和cookie等一些高级功能。支持HTTPS协议,以流的形式进行上传和下载,配置超时时间,IPV6,连接池等功能。用法(android):get方法 new Thread(new R...原创 2019-04-09 18:32:57 · 659 阅读 · 0 评论 -
Http之HttpClient
HttpClientApache公司提供的库,提供高效的、最新的、功能丰富的支持HTTP协议工具包,支持HTTP协议最新的版本和建议,是个很不错的开源框架,封装了http的请求,参数,内容体,响应等,拥有众多API。支持HTTPS协议,以流的形式进行上传和下载,配置超时时间,IPV6,连接池等功能。用法(android):引入android { useLibrary ...原创 2019-04-09 16:06:06 · 213 阅读 · 0 评论