Android APP 开发
Zonson9999
但行好事,莫问前程
展开
-
Android APP 底部出现黑色空白区域问题解决
小米手机升级至MIUI 12.5.7 后,APP的底部出现了1CM左右的黑色空白区域。原创 2022-06-12 12:44:45 · 2988 阅读 · 1 评论 -
APP开发接入广告平台及应用市场(应用分发平台)记录
应用分发平台应用分发平台 是否支持个人开发者 是否要求软件著作权 应用宝 支持 要求 小米 不支持 Google Play 支持 不要求 广告接入平台广告接入平台 是否支持个人开发者 说明 广点通 不支持 穿山甲 不支持 Google Admob 支持 国内填充率极低(就是没有广告显示,没有收入) 海外市场:Google Admob + Google Play原创 2021-07-31 10:53:48 · 928 阅读 · 0 评论 -
android 动态权限请求
主要涉及到几个API:1requestPermissions 请求权限 public final void requestPermissions(@NonNull String[] permissions, int requestCode) {在 activity 中可以直接调用。第一个参数为需要请求的权限,比如存储空间的写权限:Manifest.permission.WRITE_EXTERNAL_STORAGE存储空间的读权限:Manifest.permiss.原创 2020-12-16 15:18:40 · 855 阅读 · 0 评论 -
listview 的首行固定内容标题且加粗显示(类似于表格的首行)的实现方法
项目中有需求,将 listview 的首行固定内容标题(类似于表格的首行),效果如下:实现方式如下:Adapter 的 getCount 中返回比数据集合多一行: @Override public int getCount() { return deviceList.size() + 1; }Adapter 的 getItem 中,第一项默认返回标题数据: @Override public Object getItem(int原创 2020-12-16 14:56:52 · 1099 阅读 · 0 评论 -
通过 Google Ads 来推广应用
https://ads.google.com/第一步,创建广告新建广告->应用宣传Android APP 可以和 Google play 中的应用关联。接下来需要填写广告具体信息如标题,文字内容等。还需要填写广告的单次点击的费用和每天投放广告的费用。创建好广告之后需要设置付款方式才可以投放广告第二步:设置付款方式付款选项有两种,一为人工付款(不绑卡,先付费后使用,可使用银联借记卡),另一种为自动付款(绑信用卡,先使用后付费,可使用银联信用卡)。笔者的..原创 2020-11-30 12:22:54 · 941 阅读 · 0 评论 -
Android 10 自定义 preference 失效问题
APP中实现了这样一个 preference:红色部分是一个水平对齐的LinearLayout,通过 addView 的方式动态添加新的子view 蓝色部分原代码实现在Preference 的 onCreateView() 中完成上面的界面的渲染,public class TopbarPreference extends Preference { @Override protected View onCreateView(ViewGroup parent) {...原创 2020-11-29 22:13:46 · 520 阅读 · 0 评论 -
android notification setSound 不生效的问题
首先是由于我没有对android O (26)+ 做处理。android 26+ setSound需要在 channel 上执行: AudioAttributes audioAttributes = new AudioAttributes.Builder() .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) ..原创 2020-11-27 11:38:17 · 1987 阅读 · 0 评论 -
带删除功能 listview 实例备忘
界面效果:说明假设有一个 DeviceCollection 的类,类中有一个名为 name 的String 类型成员变量。public class DeviceCollection { public String name;}接着有一组 DeviceCollection 的实例:List<DeviceCollection> dataList;功能上希望把 列表里的每个DeviceCollection 的 name 显示到 listview 的每一行中。原创 2020-11-26 16:14:39 · 212 阅读 · 0 评论 -
android toolbar 标题居中显示方案备忘
Toolbar 默认标题置为空,app:title=""在Toolbar 内布添加子Textview <android.support.design.widget.AppBarLayout android:id="@+id/layout_title_bar" android:layout_width="match_parent" android:layout_height="wrap_content" app:elev.原创 2020-11-22 14:32:38 · 340 阅读 · 0 评论 -
Android open failed: EACCES (Permission denied)) 问题备忘
问题:android 9/10 手机上访问存储空间失败,报错:如:10-31 13:35:30.726 7619 7619 W Glide : java.io.FileNotFoundException(/storage/emulated/0/Pictures/Browser/3.jpg: open failed: EACCES (Permission denied))10-31 13:35:30.726 7619 7619 W Glide : java.io.FileNotFoun...原创 2020-11-02 15:16:46 · 460 阅读 · 0 评论 -
android studio 导入依赖库备忘
以 compile 'com.github.donkingliang:ImageSelector:1.9.2'为示例改造为直接依赖源码,可对源码进行修改:hi步骤一:下载git 库git clone xxx步骤二:as->file->new->import module->选择 git clone 后源码所在的目录 ->finish导入的过程会把代码拷贝一份到项目目录下。(如果导入的过程中 finish 按钮不亮,那可能是你源码目录下和将要导..原创 2020-10-22 20:01:18 · 189 阅读 · 0 评论 -
一个简单的 Recycleview + GridLayoutManager 显示图片的例子
显示效果Recycleview XML 布局文件(该文件内容有省略) <android.support.v7.widget.RecyclerView android:id="@+id/recycleview" android:paddingLeft="18dp" android:paddingRight="18dp" android:layout_width="match.原创 2020-10-21 17:35:50 · 752 阅读 · 0 评论 -
android github 开源的图片剪辑库使用效果记录
1compile 'com.soundcloud.android:android-crop:0.9.10@aar'通过拖动边框边缘调整截图区域。区域减小时自动放大图片。不支持 镜像翻转,旋转。github地址:https://github.com/jdamcd/android-crop2compile 'com.theartofdev.edmodo:android-image-cropper:2.4.+'github地址:https://github.com/Arthu原创 2020-10-18 19:01:19 · 1295 阅读 · 3 评论 -
转:安卓7.0遇到 android.os.FileUriExposedException: file:///storage/emulated.. exposed beyond app through
1、在AndroidManifest.xml中添加如下代码<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" ... <application ... <provider android:name="android.support.v.转载 2020-10-18 18:34:42 · 255 阅读 · 0 评论 -
Adroid studio 使用了 import org.apache.http.* 导致编译及运行失败
1 编译失败:参考:https://www.cnblogs.com/jingmo0319/p/6222640.htmlbuild.gradle 中添加 useLibrary 'org.apache.http.legacy' 后问题解决2 运行失败运行是提示didn't find class defaultHttpClient参考:https://blog.csdn.net/qq_16524861/article/details/88742199在AndroidManifes...原创 2020-10-17 19:31:05 · 247 阅读 · 0 评论 -
AndroidStudio Android-PullToRefresh 库使用记录
一个比较老的项目,导入到eclipse中,使用了AndroidStudio Android-PullToRefresh (https://github.com/chrisbanes/Android-PullToRefresh.git)第一步先 git clonehttps://github.com/chrisbanes/Android-PullToRefresh.git这个项目。第二步 android studio import module 导入上一步 clone 的项目操作之...原创 2020-10-17 19:25:43 · 309 阅读 · 0 评论 -
android studio zipException 问题记录
原因是 build.gradle 有重复的包,删除 compile files('libs/._android-support-v4.jar') 后问题解决compile 'com.android.support:support-v4:20.0.0'compile files('libs/._android-support-v4.jar')原创 2020-10-17 19:06:54 · 249 阅读 · 0 评论 -
android apk 打包时出现 Lint found fatal errors while assembling a release target
这里android studio提供的是跳过错误进行编译的方法。查看错误详细信息可通过以下文件:项目下的lint-results-release-fatal.html文件app\build\reports\lint-results-release-fatal.html打开后,按照提示进行修复即可。...原创 2020-10-13 09:49:06 · 454 阅读 · 0 评论 -
viewpager 内嵌 viewpager 后界面显示空白问题
内嵌的viewpager的adapter在构建时,传入的FragmentManger有误导致: mSectionsPagerAdapterCounter = new SectionsPagerAdapterCounter(this.getChildFragmentManager());传Fragment的getChildFragmentManager() 可解决问题。...原创 2020-09-27 16:50:40 · 252 阅读 · 0 评论 -
android 前台任务及闹钟相关资料整理
通知:https://developer.android.google.cn/guide/topics/ui/notifiers/notifications?hl=zh-cn前台服务:https://developer.android.google.cn/guide/components/services?hl=zh-cn#Foreground后台任务:https://developer.android.google.cn/guide/background?hl=zh-cnAlarm原创 2020-09-24 19:51:25 · 128 阅读 · 0 评论 -
ViewPager setOnPageChangeListener方法过期
改用addOnPageChangeListener mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }..原创 2020-09-24 19:47:13 · 216 阅读 · 0 评论 -
android studio viewpader 圆点指示器 调研
这个效果很好:https://www.jianshu.com/p/b770a0641a57 (https://github.com/dongjunkun/CuteIndicator)github星比较少。尝试在github搜索viewpager indicator最后使用的是:https://github.com/romandanylyk/PageIndicatorView/releases使用 v1.0.3的时候,编译遇到问题。(暂未排查)降为 v1.0.0后...原创 2020-09-24 19:42:37 · 400 阅读 · 0 评论 -
android studio support-v4 包冲突
gradle在以下基础上 implementation 'com.android.support:cardview-v7:25.4.0' implementation 'com.android.support:design:25.4.0'新增了 implementation 'com.android.support:appcompat-v7:25.4.0'后报support-v4 包冲突做了一些尝试 exclude module: 'support-v4' 均失败...原创 2020-09-24 19:35:46 · 612 阅读 · 0 评论 -
androdi api 级别和 android 版本的对照表
详见:https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element.html平台版本 API 级别 VERSION_CODE 备注 Android 10.0 29 Q 平台亮点 Android 9 28 P 平台亮点 Android 8.1 27 O_MR1 平台亮点 Android 8.0 26 O 平台亮点原创 2020-09-20 10:11:22 · 879 阅读 · 0 评论 -
minSdkVersion 和 targetSDKVersion 的官方说明
详见:https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element.html属性:android:minSdkVersion一个用于指定应用运行所需最低 API 级别的整数。如果系统的 API 级别低于该属性中指定的值,Android 系统将阻止用户安装应用。您应始终声明该属性。注意:如果您不声明该属性,系统将假定默认值为“1”,这表示您的应用兼容所有 Android 版本。如果您的应用并不兼容所有版本(原创 2020-09-20 10:07:57 · 478 阅读 · 0 评论 -
Google play 发布更新时提示 发生了意外错误。请重试。(64f8e96e)
最终解决方案:使用传统版Play 管理中心 后问题解决原创 2020-09-17 17:13:27 · 3511 阅读 · 0 评论 -
listview 不显示分割线
默认的ListView分割线为黑色,对分割线进行定制和删除:android:divider="#fffff" 分割线颜色 设置为@null即不显示分割线android:dividerHeight="1px" 分割线高度原创 2020-09-14 11:02:13 · 560 阅读 · 0 评论 -
android gson list 和 json array 互转示例
compile 'com.google.code.gson:gson:2.8.4'list转 json stringpublic class TabData { public static final int TAG_TYPE_DEFAULT = 0; int tabType; int tabIndex; String tabTitle; long tabData;} List<TabData> lis...原创 2020-09-11 10:01:46 · 1567 阅读 · 0 评论 -
finalize() timed out after 10 seconds 问题模拟复现
public class Apple { @Override protected void finalize() throws Throwable { super.finalize(); Thread.sleep(130*1000); }}在 actvitity中创建一个A pple 对象。C rash Handler里拦截异常import android.util.Log;import androidx.annotat...原创 2020-08-05 15:17:10 · 3017 阅读 · 0 评论 -
android 上传json串时,json key 被替换为 a b c 的问题
上传的json串是一个mapclassStudentInfo { public String name; public String age;}map.put("team", "team-a")List<StudentInfo> data = buildData(xxx);map.put("data", data);最后再用Gson将map转为json字符串。打包的debug版本的,表现正常,json串如下:{"team":"te.原创 2020-07-28 21:02:44 · 680 阅读 · 0 评论 -
Android studio Gradle sync failed: Software caused connection abort: recv failed
Android studio Gradle sync failed: Software caused connection abort: recv failed经分析发现是无法下载默认的 gradle.ZIPhttps://services.gradle.org/distributions/gradle-6.1.1-all.zip替换成一个可以下载的地址即可:https://distfiles.macports.org/gradle/gradle-6.1.1-all.zip...原创 2020-07-01 16:21:53 · 1601 阅读 · 0 评论 -
Android Studio Gradle Syn failed 解决
build.gradle 调整buildscript { repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.3.1' .原创 2020-06-05 23:37:36 · 268 阅读 · 0 评论 -
Android APP 图标生成
https://romannurik.github.io/AndroidAssetStudio/https://makeappicon.com/http://iconion.com/图文教程参考:https://jingyan.baidu.com/article/154b46312f6e3e28ca8f412d.html原创 2020-03-21 19:24:23 · 891 阅读 · 0 评论 -
监听不到 RECEIVE_BOOT_COMPLETED 的处理办法
我用的是华为honor做为测试机,在安装应用后,重启手机时无法接收到 RECEIVE_BOOT_COMPLETED 的广播。权限,代码都OK。后来发现是系统级额外的限制,详见:设置->开机自启项这里有一个列表,勾选允许新装的APP自启动,问题解决。原创 2015-10-08 12:41:44 · 1120 阅读 · 0 评论 -
Android notification ticker text 详解
状态栏通知常涉及到的三个参数:ticker texttitlecontent将状态栏下拉完全展示后,title和content分别对应一则通知的标题和正文。ticker text 则是状态栏非下拉展示时,在状态栏显示1~2秒的提示文字。ticker text 的作用用1. 提示用户,我们的APP在通知栏新建了一则通知,下拉可查看详情。2. 提示用户,APP的原创 2015-10-08 14:35:49 · 3189 阅读 · 0 评论 -
解压和重新打包 apk 安装包流程记录
参考apk 签名原理:http://www.360doc.com/content/14/0429/11/2306903_373148270.shtmlapk 破解:http://www.blogjava.net/zh-weir/archive/2011/06/11/352099.htmlapktools 2.0.0 下载:http://download.csdn.net/detail/原创 2015-11-12 11:47:07 · 1822 阅读 · 0 评论 -
触摸事件分发文章记录
基本:http://blog.csdn.net/awangyunke/article/details/22047987ViewPager,ScrollView 嵌套ViewPager滑动冲突解决http://www.open-open.com/lib/view/open1477538760579.html原创 2016-12-11 22:13:08 · 233 阅读 · 0 评论 -
APP 框架记录
Eclipse环境下使用TabLayout DEMOhttp://download.csdn.net/download/androidguy/9705314原创 2017-06-03 21:52:26 · 220 阅读 · 0 评论 -
Android 判断当前语言环境是否是中文环境
http://www.jb51.net/article/110935.htm话不多说,请看代码:public static boolean isZh(Context context) { Locale locale = context.getResources().getConfiguration().locale; String language = loca转载 2017-07-03 10:47:44 · 5251 阅读 · 0 评论 -
自定义View相关知识记录
View.MesureSpec说明MesureSpec 将 size 和 mode pack到一个 int 型的值里。(减少类的创建和销毁)关于 Mode,它有三个值:UNSPECIFIEDThe parent has not imposed any constraint on the child. It can be whatever size it原创 2016-01-29 10:34:27 · 331 阅读 · 0 评论