
android开发步步为营
文章平均质量分 54
志飞
技术总结,方便参考
展开
-
android aar适配uniapp
最近有商户需要接入我们sdk,但是我们都是android或者ios原生的,直接用又不能用,需要做适配,本文就教你一步步实现android aar适配uniapp。但是官方写的比较繁琐,好像也没有写哪里去获取他们的扩展类的包,就是需要继承这个类,你才能暴露出js的方法给uniapp使用。原创 2024-08-23 20:17:07 · 1099 阅读 · 0 评论 -
Android中RSA公钥加密后Java服务端私钥无法解密问题解决
工作中经常需要Android客户端使用RSA公钥加密敏感数据,服务端再使用配套的RSA私钥解密数据,最近碰到一个问题,使用RSA加密后服务端无法解密,查阅相关资料后,发现是这个问题:RSA操作的填充方式不对。android系统的RSA实现是"RSA/None/NoPadding",而标准JDK实现是"RSA/None/PKCS1Padding" ,那解决方法是加解密填充方法改成一致呗。比如填充方式统一改成:RSA/ECB/PKCS1Padding。原创 2024-06-23 21:23:59 · 625 阅读 · 0 评论 -
AndroidStudio中如何运行class中的main()函数?
android studio运行main函数原创 2024-06-20 16:29:54 · 326 阅读 · 0 评论 -
查看Android打包时签名文件keystore的MD5值
原先通过命令keytool -list -v -keystore test.jks 可以查看md5值,但是发现现在查看不了,只有SHA1和SHA256的。有些SDK提供方需要我们提供打包APK时使用的签名文件MD5值,然后SDK服务端会进行比对保证商户调用的合法性。右侧gradle Tasks里面双击signingReport就可以查看签名文件的MD5值了。在app的build.gradle中配置你们签名文件,怎么生成签名文件?...原创 2022-08-05 15:27:33 · 8533 阅读 · 0 评论 -
android相关技术总结
1)、小米手机adb install失败 100%稳定复现 INSTALL_CANCELED_BY_USERadb install E:\AndroidProjects\sdk打包\增值插件CPVASPluginDemo\app-release.apk总是报错,原因是开发者选项里面多了一个USB安装的选项(在原来的USB调试下面),把这个打开就可以了2)、adb相关重启adb kill-serveradb start-server出现successful就重启成功了卸原创 2022-02-24 14:51:30 · 1377 阅读 · 0 评论 -
android动态获取资源id
有时候提供的jar需要内嵌到第三方app,但是本身又使用到layout,drawable,string等资源,就需要用到动态获取资源id。 比如原先我们设置页面是这样的 setContentView(R.layout.main); 现在需要改成这样: Utils.setPackageName(getPackageName()); //20211026应陆金所要求,反射改成getResources...原创 2021-10-27 10:19:28 · 1450 阅读 · 0 评论 -
not attached to window manager问题解决
关于出现这个问题,一般是因为Activity已经在finish了,但是还在dialog.show(),或者dialog.dismiss().导致window manager无法管理dialog。解决办法如下:/** * 20210913 安全关闭对话框 . * 避免报:not attached to window manager . * @param dialog */ public static void closeDialogSafety(Activity ac...原创 2021-09-14 14:29:52 · 8010 阅读 · 0 评论 -
android通过aidl调用第三方app提供的服务
一个app需要调用第三方app提供的服务,除了提供jar,aar,contentprovider,activity跳转,scheme跳转,广播发送,还可以通过aidl (Android Interface Definition Language,即Android接口定义语言),通过service对外提供服务,底层原理是使用android系统的Binder,进行进程间的通信。 本次试验,通过一个叫learn的app提供两个接口服务,1.判断用户名密码是否正确 2.返回用户信...原创 2021-08-27 01:06:21 · 2182 阅读 · 0 评论 -
接入第三方aar页面找不到资源文件报空指针问题
最近开发了一款二维码SDK给商户使用,但是我们提供的demo能正常运行,商户的接入时一直报void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 各种排查,取消混淆,各种依赖重新添加,权限的添加等等,就是找不到这个页面的id为title的TextView,后来加了段代码调试当前页面都有哪些元素 setContentV...原创 2020-07-14 09:40:37 · 1404 阅读 · 0 评论 -
android引入第三方aar,jar冲突如何解决?
引入第三方aar,发现第三方aar里面的jar和本地项目的jar冲突了 如何解决?方法一:把本地引入的冲突的jar删了 (缺点:是否会影响自身的APP?需要测试)方法二:删除aar里面的冲突的jar相关的class,重新打成aar(缺点:是否会影响应用的AAR?需要测试)在linux环境,先解压unzip test-v1.0.2.aar -d /usr/local/test/test-v1.0.2再使用winrar打开classes.jar,删除冲突的jar重新打成aar包...原创 2020-07-06 15:21:20 · 7459 阅读 · 1 评论 -
android webview重写第三方H5页面js方法
需求是这样的,最近通过我们SDK的Webview打开了公司另外一个系统H5支付页面,这个H5页面左上角有个返回按钮,因为不是从我们的H5页面跳转过去的,所以左上角的返回图标执行的windows.history.back(-1);没有生效,商户投诉无法退出。解决办法是1.让这个H5页面点击我们webview暴露出去的一个js事件,点击的时候关闭当前webview Activity,这样成本比较大,另外一个系统也要改,另外这个H5支付系统也给其他系统调用,不太现实。 2.重写H5的windows.h...原创 2020-06-30 15:47:43 · 855 阅读 · 0 评论 -
兼容android10下载apk后无法安装问题
android兼容问题比较多,不仅仅是各种型号手机的兼容,SDK版本升级也得兼容,这不,今天发布了一个APK,android 9以下手机能在线下载最新APK后能安装,android 10就不行了,网上查阅一下资料,因为android权限控制的更严了,经测试如下方法可以解决,供参考。1、AndroidManifest.xml添加权限 <!-- 安装需要的权限 --> <uses-permission android:name="android.permi...原创 2020-06-16 15:48:32 · 6172 阅读 · 3 评论 -
android获取客户端ip
网上查过很多资料,发现很多文章写得不全,要么只能查询wifi状态下客户端ip,要么只能查询gprs移动数据情况下的客户端ip,我写了个工具类,包含:1.可以判断当前网络状态是否可用 2.获取客户端ip(只要有网络),供参考。package com.figo.test.utils;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import.原创 2020-05-14 10:49:51 · 1630 阅读 · 1 评论 -
通过webview修改网页内容
有个需求,通过webview在打开第三方H5页面的时候,把卡号设置到第三方页面的卡号输入框。代码完整如下:package com.example.study2020;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebV原创 2020-05-09 16:20:38 · 2039 阅读 · 0 评论 -
android开发步步为营之6:客户端通过tcp和服务端进行交互
TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。本文模拟客户端通过TCP向服务端发起登录请原创 2013-04-29 10:10:05 · 1185 阅读 · 0 评论 -
android开发步步为营之7:完美退出应用程序
Android程序关闭方法有多种,网上说的好几种都不可取,比如(1)、android.os.Process.killProcess(android.os.Process.myPid());实验证明这个方法只能关闭第一个AActivity,该方法不可取,测试手机为android v2.21(2)、ActivityManager activityMgr=(ActivityMan原创 2013-04-29 10:06:07 · 1395 阅读 · 0 评论 -
android开发步步为营之8:ActivityGroup实现Tab效果
之前写过一篇关于TabActivity实现在同一个界面实现页面切换的效果,今天学习下ActivityGroup的用法,一样能够实现点击标签进行页面切换的效果。不多说什么上代码。 1、Activity AcitivityGroupActivity.java package com.figo.helloworld;import android.app.ActivityGrou原创 2013-04-29 10:01:35 · 1167 阅读 · 0 评论 -
android开发步步为营之9:反编译apk
接着上篇写的,既然我们已经将APK给生成了,那可不可以查看这个APK的源代码呢?当然是可以,但是如果源代码混淆过,看起来就不知所云了,除非打包的时候没有混淆过,是完全可以看到源代码的。下面开始我们的反编译之旅。 第一步、准备好工具dex2jar和jd-gui Dex2jar是将apk里面的dex文件反编译成jar包,Jd-gui是用来打开jar文件,来查看原始的java代码的。 Dex原创 2013-03-19 17:33:56 · 814 阅读 · 0 评论 -
android开发步步为营之10:代码签名混淆后编译和打包
编译和打包,最常见的有两种方式,手动使用eclipse export 项目apk,另外一种是使用ant自动打包。本文分别介绍这两种打包方式。 第一种:使用Eclipse导出比如,现在我们有个项目helloworld,1、选中项目右键export2、选择已有的签名密钥或者新建一个,这里新建一个原创 2014-09-23 15:40:21 · 984 阅读 · 0 评论 -
android开发步步为营之15:默认让应用程序安装到手机外存sd卡上
从用户的角度来说,他当然希望你的应用安装到外存上,因为内存占用的越少,应用才能运行的越快。然后机器也可以安装更多的应用了。 如图:安装在了内存: 图片 安装在了外存:图片一、API Level 8(android 2.2)以上版本开始支持从API Level 8开始,你可以允许你的应用安装至扩展存储(例如,SD卡)。这是一个可选功能,你可以在你应用的ma原创 2014-09-23 17:47:40 · 1144 阅读 · 0 评论 -
android开发步步为营之23:Spinner进阶绑定包含key和value的对象
Spinner一般绑定字符串数组就可以了,比如之前 的做法 ArrayAdapter adapter = ArrayAdapter.createFromResource( this, R.array.fruit, android.R.layout.simple_spinner_item);,有时候,我们需要绑定一个对象,比如显示的时候,显示value,但是程序需要原创 2014-09-23 21:40:34 · 1267 阅读 · 0 评论 -
android开发步步为营之18:闹钟AlarmManager的使用
public class android.app.AlarmManagerextends ObjectClass OverviewThis class provides access to the system alarm services. These allow you to schedule your application to be run at some point in原创 2014-09-23 17:51:13 · 1034 阅读 · 0 评论 -
android开发步步为营之27:上下文菜单ContextMenu的用法
ContextMenu上下文菜单,它是通过长时间的按住一个view弹出来的菜单,比如长时间按住一个图片、文本等,都可以触发弹出一个上下文菜单。可以根据选择的菜单,弹出相应的消息或者跳转到相关的Activity中去。public interface ContextMenu implements Menu android.view.ContextMenu Class Overvie原创 2014-09-23 21:59:33 · 1046 阅读 · 0 评论 -
android开发步步为营之12:AutoCompleteTextView和MultiAutoCompleteTextView
一、理论学习public classAutoCompleteTextViewextends EditTextimplements Filter.FilterListenerjava.lang.Objectandroid.view.Viewandroid.widget.TextViewandroid.widget.EditTextandroid.widget.Au原创 2014-09-23 17:21:46 · 848 阅读 · 0 评论 -
android开发步步为营之13:frame animation实现自动播放和手动播放
游戏开发过程中,动画肯定是需要的,Android动画Animation有两种,一种叫Tween Animation展现渐变效果,比如从大到小,从暗到明,旋转,从一个位置移动到另外一个位置,第二种叫Frame Animation就是电影一帧帧播放的效果,今天我们来学习第二种电影放映效果。第一种下次再介绍,先学习理论。 public classAnimationDrawablee原创 2014-09-23 17:26:57 · 1660 阅读 · 0 评论 -
android开发步步为营之17:MideaPlayer的用法
(1)、类介绍public class android.media.MediaPlayerextends ObjectClass OverviewMediaPlayer class can be used to control playback of audio/video files and streams. An example on how to use the method原创 2014-09-23 17:51:15 · 804 阅读 · 0 评论 -
android开发步步为营之28:自定义Menu
一般我们使用OptionMenu已经能够满足设计上的需求了,但是有时候如果把菜单设计的特别一些,那就需要我们自己来创建菜单了,这里呢,我使用自定义的AlertDialog来实现,让AlertDialog弹出一个放置GridView的页面,达到模拟OptionMenu的效果。Gridview用来显示图片+文字比较好用。好,开始我们的实验。 第一步、设计界面自定义菜单页面custommen原创 2014-09-23 22:00:24 · 980 阅读 · 0 评论 -
android开发步步为营之29:选项菜单OptionsMenu的用法
菜单也是一个非常常用的主键,点击手机上的菜单按钮就呼出了。在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),今天这讲是OptionsMenu public interface Menu android.view.MenuKnown Indirect SubclassesContextMe原创 2014-09-23 22:02:43 · 892 阅读 · 0 评论 -
android开发步步为营之16:发信息和打电话
/** * @author zhuzhifei * */public class SendMsgAndDialActivity extends Activity implements OnClickListener {private Button btnsendmsg, btndialphone;@Overrideprotected void onCreate(Bund原创 2014-09-23 17:47:39 · 692 阅读 · 0 评论 -
android开发步步为营之26:进度条对话框ProgressDialog的用法
ProgressDialog进度对话框也是一个用的很广的控件,比如下载、支付、或者游戏里面打怪当前进度是多少了呢?那就需要它弹出来提醒用户了。既然是对话框,如果用户没有关闭它,就不能进行其他操作,先看看sdk里面是怎么说的。public class ProgressDialog extends AlertDialogjava.lang.Object ↳ android.app.Di原创 2014-09-23 21:54:19 · 1005 阅读 · 0 评论 -
android开发步步为营之14:App Widgets
什么是appwidget呢?中文名称是应用小插件,截个图就可以直观的认识了长时间点击手机桌面,出现下面的页面 图点击widgets后出现目前存在的widgets 图片我们选择一个Music看看什么效果 图片 我们发现我们的手机桌面出现了这个音乐播放器。这个就是widget,好了,我们对widget已经有了一个直观的认识,现在我们先学习一些理论知识,然后再做个试验。原创 2014-09-23 17:42:14 · 817 阅读 · 0 评论 -
android开发步步为营之19:选取手机通讯录中的联系人
一、需求最近开发的一个应用中,给手机中的好友转账,那么需要选择用户手机中的联系人,作为收款账号。先看看效果:1、主界面 图片2、点击收款账号右边的图标按钮之后,跳到手机联系人页面图片3、选取联系人之后图片二、理论知识作为一个完成的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、S原创 2014-09-23 21:16:39 · 957 阅读 · 0 评论 -
android开发步步为营之25:开发自定义进度条对话框
public class ProgressDialog extends AlertDialogjava.lang.Object ↳ android.app.Dialog ↳ android.app.AlertDialog ↳ android.app.ProgressDialog从类的继承关系我们可以看到ProgressDialog继承至AlertDial原创 2014-09-23 21:51:01 · 824 阅读 · 0 评论 -
android开发步步为营之30:四大组件之Activity
Activit(活动)无疑是整个android开发过程中最重要的组件,一直想写这一节,但是一直认为反正这个简单,先学复杂的,现在认识到最简单的往往是最容易犯错的,只有把基础打扎实才能往上筑高楼。一、理论知识:类的继承关系:public class Activity extendsContextThemeWrapperimplementsComponentCallbacks KeyE原创 2014-09-24 09:25:36 · 930 阅读 · 0 评论 -
android开发步步为营之31:TabActivity的用法Tab显示在底部
Tab标签页是一个非常常用的控件,.net里面就有multipage+tabstrip组合通过标签的切换实现页面的切换,同理html里面我们常用frameset来实现,android里面我们则通过使用FrameLayout+TabWidget, FrameLayout里面装载xml页面,TabWidget显示标签,点击标签跳转到相关的activity或者view。public class Ta原创 2014-09-24 10:14:47 · 1569 阅读 · 0 评论 -
android开发步步为营之34:四大组件之ContentProvider
ContentProvider,从字面意义上理解,内容提供者,这个类目的就是一个桥梁的作用,让一个应用的数据(SQLiteDatabase, SharedPreferences,Xml,Txt等数据),通过ContentProvider可以让其他的应用访问。 理论知识(一)、ContentProvider简介 当应用继承ContentProvider原创 2014-09-24 12:00:50 · 1112 阅读 · 0 评论 -
android开发步步为营之32:玩转Toast
Toast英文名为土司,在Android里面这个类是用来弹出提示信息的,我想sdk作者是认为提示信息片长得就像一块土司吧。这个理论就不多说什么了,开始我们的实践。第一步、设计页面主页面toastview.xmlhttp://schemas.android.com/apk/res/android" android:orientation="vertical" android原创 2014-09-24 10:15:46 · 942 阅读 · 0 评论 -
android开发步步为营之37:四大组件之Service(上)通过startService(intent)启动
写过windows service的人都知道,windows service是一个运行在后台看不见的服务,它默默地处理着业务,android 的service也一样,它运行在后台,前台是看不见的,我们可以理解为它是一个不可见的activity。比如常见音乐、广播电台播放器,打开后,它就在后台运行了,这个时候我们又可以去做其他事情,比如玩游戏,看书,发短信等等。 Service是andr原创 2014-09-24 14:39:22 · 1247 阅读 · 0 评论 -
android开发步步为营之36:四大组件之Service(中)通过bindService启动
接着上一篇的理论,我们继续学习使用另外一种方法来启动我们的Service,通过bindService让activity绑定到一个service来启动。这里使用bindService(intent, sc, Context.BIND_AUTO_CREATE);来启动服务的,我们需要定义ServiceConnectionnn,并实现里面的方法,当服务绑定成功后会调用ServiceConnectionn原创 2014-09-24 12:15:36 · 726 阅读 · 0 评论 -
android开发步步为营之39:NotificationManager发通知
NotificationManager顾名思义,通知管理器,就是用来发通知的,打开手机可以看到最上层有一个状态条,那里可以显示信号强弱,电量,时间,还可以显示通知等等,比如说来电通知,短信通知,向下一拉,点击某条通知,就可以进入相应的应用了,比如短信,一点击某条短信通知,就进入短信阅读页面了。今天我们就来学习,如何发送通知。理论:public classNotificationMana原创 2014-09-24 14:52:18 · 782 阅读 · 0 评论