全部 文章 问答 分享 共找到237个相关内容
[文章] 你的2019总结来了吗?【有奖征文】
你的年终总结写了吗?后面得写代码去实现抽奖的功能了。这一次,我们走一次人工流程。后面再用代码实现。要不要要来个抽奖呢?要的,为了拉低概率,赶紧参与吧!
[文章] 一些关于面试的链接 已分享
习使用本贴适用于初中级(高级俺也不懂适不适合)PS:排列顺序是收藏时间想看最新从最后往前看Android知识点复习(持续更新中)Android面试题集(2020)Android面试题含答案Android面试题总结
2023-02-16 10:24 · 面经
[文章] 自学误区
积累经验,时间长了就好,没到拼天分智商环节6:到处收集资料,但从来不看。资源在精而不在多。确定路线。7:学了就忘。要经常用,需求驱动,记录,总结,思考,回顾,写博客笔记。8:转行编程。
2019-11-22 00:38 · 自学
[文章] 关于View及TextView和EditText的一些属性总结
给初学者的一份属性总结,具体内容如下思维导图所示(应该够用了):View与TextView的属性对比TextView与EditText的属性对比
2020-06-18 14:10 · 安卓 / 控件 / 属性总结
[文章] 程序员如何解决问题呢?
在我工作中看到的,即使有着几年工作经验的人,也会很依赖别人。这种人没有安全感,不能承担责任,因为害怕东西做不出来。没有网络就写不出代码,我在他旁边站一会就写不出代码。
2019-11-02 03:41 · 奇淫技巧 / 程序员 / 解问题 / bug / 程序猿
[文章] 总结原生Shiro的使用流程
总结原生Shiro的使用流程一、准备1.配置依赖<dependencies><!
2020-08-16 10:11 · java / shiro / 权限 / 框架
[文章] 总结使用SpringBoot+Dubbo创建服务提供者项目和服务消费者项目的流程
总结使用SpringBoot+Dubbo创建服务提供者项目和服务消费者项目的流程这是我学习的笔记,有什么不对请帮忙指出来(1)总结使用SpringBoot+Dubbo创建服务提供者项目的流程①创建SpringBoot
2020-06-19 23:26 · java / spring / SpringBoot / Zookeeperr / dubbo
[文章] 阳光沙滩博客插入emoji表情的小问题
对于mysql字符集我们不想出现乱码情况有一个经验就是character_set_client、character_set_connection、character_set_results字符尽量设置成一致的
2020-08-25 12:08 · sql / jpa / emoji / 阳光沙滩
[文章] 今日份编码经验分享
java切割字符串以下内容:以逗号切割Stringtmp="a,b,c,,,,d,e";String[]arrays=tmp.split(",");System.out.println("arrays"+arrays.length);请问长度是多少?如果要得到8,需要这么写:String[]arrays=tmp.split(",",-1);Docker-compose提示exitedwithcode0今天在部署ASR的服务,遇到这个问题其实是容器执行完任务,就退出了右发加上这鼐stdin_open:true你学废了吗?
2024-03-25 19:03 · 日常 / 经验 / 经历 / 遭遇 / 代码
[文章] 喜马拉雅项目总结
总结总的来说,安卓的开发与web的开发还是有很大的差别的,在安卓开发中,需要考虑很多的情况,而在web中很多情况都会被浏览器处理掉,如没有数据,网络错误,数据为空等等这都需要开发者去处理,但在web上我一直没有做过这方面的处理
2020-08-03 19:40 · 喜马拉雅项目 / 学习总结
[文章] 被公司试用总结(咸鱼大杂烩)
packageManager.setComponentEnabledSettingsetComponentEnabledSetting方法就是用来禁用Android系统中的四大组件。比如我想禁用一个服务。/***禁用组件*@paramcontext上下文*@paramclassName组件类名*/privatefundisableComponent(context:Context,className:String){valcomponentName=ComponentName(context,className)if(isComponentDisabled(context,componentName))return//已经禁用context.packageManager.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP)}如果想重新启用的话,也是上面的方法,只是setComponentEnabledSetting第二个参数值不一样/***启用组件*@paramcontext上下文*@paramclassName组件类名*/privatefunenableComponent(context:Context,className:String){valcomponentName=ComponentName(context,className)if(isComponentEnabled(context,componentName))return//已经启用context.packageManager.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP)}获取组件状态的方法,getComponentEnabledSetting,具体的代码如下,分别是获取可用状态和禁用状态的方法。/***组件是否处于可用状态*/funisComponentEnabled(context:Context,componentName:ComponentName):Boolean{valstate:Int=context.packageManager.getComponentEnabledSetting(componentName)returnPackageManager.COMPONENT_ENABLED_STATE_ENABLED==state}/***组件是否处于禁用状态*/funisComponentDisabled(context:Context,componentName:ComponentName):Boolean{valstate:Int=context.packageManager.getComponentEnabledSetting(componentName)returnPackageManager.COMPONENT_ENABLED_STATE_DISABLED==state}setApplicationEnabledSetting**setApplicationEnabledSetting()**方法是PackageManager提供的禁用app的方法,一般只能用来禁用自己,不能禁用其他app。context.packageManager..setApplicationEnabledSetting("com.example.viewtest",PackageManager.COMPONENT_ENABLED_STATE_DISABLED,0);其他参数介绍:COMPONENT_ENABLED_STATE_DEFAULT:恢复组件进入默认的状态COMPONENT_ENABLED_STATE_ENABLED:启用组件COMPONENT_ENABLED_STATE_DISABLED:禁用组件COMPONENT_ENABLED_STATE_DISABLED_USER:由用户禁用app,所以是可以重新启用的,只能setApplicationEnabledSetting()方法使用COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED:也是禁用app,但是使用者还是可以在界面上看到app,点击之后就会重新启用,状态改为enabled,只能setApplicationEnabledSetting()方法使用AudioManager探索AudioManager声音的模式(streamType)如下:AudioManager.STREAM_MUSIC媒体声音AudioManager.STREAM_VOICE_CALL通话声音AudioManager.STREAM_SYSTEM系统声音AudioManager.STREAM_RING电话铃声AudioManager.STREAM_ALARM闹钟声音AudioManager.STREAM_NOTIFICATION通知声音AudioManager.STREAM_BLUETOOTH_SCO蓝牙链接声音AudioManager的附加参数flags如下:AudioManager.FLAG_SHOW_UI调整时显示音量条(就是按音量键出现的那个)AudioManager.FLAG_PLAY_SOUND改变音量时播放声音AudioManager.FLAG_VIBRATE手机铃声进入振动铃声模式是否振动AudioManager.FLAG_ALLOW_RINGER_MODES更改音量时是否切换模式,比如响铃音量设置为0时是否开启震动模式AudioManager.FLAG_SHOW_SILENT_HINT由于静音模式,无法调整音量,请在用户界面中显示提示。AudioManager.FLAG_ACTIVE_MEDIA_ONLY指示仅当媒体正在活动播放时才应处理此问题。AudioManager.FLAG_SHOW_UI_WARNINGS就像FLAG_SHOW_UI,但是只有对话框警告和确认,没有滑块。AudioManager.FLAG_SHOW_VIBRATE_HINT阻止将音量从振动调低,在用户界面中显示提示。AudioManager的direction解释:AudioManager.ADJUST_RAISE增加铃声音量AudioManager.ADJUST_LOWER减小铃声音量。AudioManager.ADJUST_MUTE静音AudioManager.ADJUST_UNMUTE取消静音获取当前streamType的音量getStreamVolume(intstreamType);参数streamType:参考AudioManager的声音模式如:AudioManager.STREAM_MUSIC设置当前streamType的音量值设置方法一、直接设置当前音量值setStreamVolume(intstreamType,intindex,intflags);参数streamType:参考AudioManager的声音模式如:AudioManager.STREAM_MUSIC参数index:音量值参数flags:附加参数如AudioManager.FLAG_SHOW_UI(调整时显示音量条(就是按音量键出现的那个))设置方法二、渐进式设置音量值(类似按物理音量键一步一步到指定值)adjustStreamVolume(intstreamType,intdirection,intflags);参数streamType:参考AudioManager的声音模式如:AudioManager.STREAM_MUSIC参数direction:参考direction解释:如AudioManager.ADJUST_LOWER参数flags:附加参数如AudioManager.FLAG_SHOW_UI(调整时显示音量条(就是按音量键出现的那个))设置方法三、渐进式设置音量值adjustVolume(intdirection,intflags);参数direction:参考direction解释:如AudioManager.ADJUST_LOWER参数flags:附加参数如AudioManager.FLAG_SHOW_UI(调整时显示音量条(就是按音量键出现的那个))获取焦点(处理声音重叠问题)requestAudioFocus(OnAudioFocusChangeListenerl,intstreamType,intdurationHint)参数l:焦点切换监听参数streamType:参考AudioManager的streamType模式如:AudioManager.STREAM_MUSIC参数durationHint:参考如下durationHint参数AudioManager.AUDIOFOCUS_NONE用于指示未获得或丢失音频焦点或请求音频焦点。AudioManager.AUDIOFOCUS_GAIN(效果:重叠播放效果)用于指示未知持续时间的音频聚焦增益或音频聚焦请求。AudioManager.AUDIOFOCUS_GAIN_TRANSIENT(效果:播放时其他暂停,释放后其他继续播放)用于表示暂时获得或请求音频焦点AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK(效果:类似导航播报,原声音弱化,释放后恢复)用于表示暂时的音频焦点请求,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE(效果:播放时其他暂停,释放后其他继续播放)独占和瞬时音频焦点请求的示例是语音备忘录记录和语音识别,在此期间系统不应播放任何通知和媒体播放应该已暂停AudioManager.AUDIOFOCUS_LOSS(效果:获取焦点失败,没测出效果)用于指示持续时间未知的音频焦点丢失。AudioManager.AUDIOFOCUS_LOSS_TRANSIENT(效果:获取焦点失败,没测出效果)用于指示音频焦点暂时丢失。AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK(效果:获取焦点失败,没测出效果)用于指示音频焦点的丢失者可以如果要继续播放(也称为“回避”),请降低输出音量新的焦点所有者不要求其他人保持沉默。是否有媒体声音在播放(也可以处理声音重叠问题的产生)/***Android中判断是否有音频声音在播放(其他第三方应用)**@return*/privatebooleanisFmActive(){AudioManageram=(AudioManager)getSystemService(Context.AUDIO_SERVICE);if(am==null){returnfalse;}returnam.isMusicActive();}强制获取媒体焦点如:正在播放音乐,导航播报,音乐声音弱化或者直接停止,播报结束释放焦点自动播放原音乐/***强制获取播放焦点*/privatevoidfocusRequestAudio(){mAudioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);if(mAudioManager!=null){//Requestaudiofocusforplayback结束记得释放abandonAudioFocusintresult=mAudioManager.requestAudioFocus(audioFocusChangeListener,STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE);//Asuccessfulfocuschangerequest.if(result==AudioManager.AUDIOFOCUS_REQUEST_GRANTED){//播放自己的音频}else{//Afailedfocuschangerequest.获取焦点失败Log.e("snow","=testDemo==获取焦点失败====");}}}AudioManager.OnAudioFocusChangeListeneraudioFocusChangeListener=newAudioManager.OnAudioFocusChangeListener(){@OverridepublicvoidonAudioFocusChange(intfocusChange){//不知为什么只调用了一次Log.e("snow","=testDemo==focusChange===="+focusChange);}};@OverrideprotectedvoidonDestroy(){super.onDestroy();//释放声音的焦点if(mAudioManager!=null){mAudioManager.abandonAudioFocus(audioFocusChangeListener);}}静音模式/***静音模式*/publicvoidsilent(){mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);}震动模式/***震动模式*/publicvoidvibrate(){mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);}正常模式/***正常模式*/publicvoidnormal(){mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);}获取铃声模式/***获取铃声模式*/publicvoidgetRingerMode(){mAudioManager.getRingerMode();}获取音频模式/***获取音频模式*/publicvoidgetAudioMode(){mAudioManager.getMode();}AtomicInteger类中incrementAndGet与getAndIncrementgetAndIncrement方法是返回旧值(即加1前的原始值)incrementAndGet返回的是新值(即加1后的值)Android中SystemProperties类使用方法Android系统可以通过读取/system/build.prop文件查看系统属性。Systemproperties类在android.os下,路径为:/frameworks/base/core/java/android/os/SystemProperties.java方法详解:1.返回字符(String):android.os.SystemProperties.get(Stringkey,Stringdef);参数:key--键值,def--默认值返回值:有相应的键值,返回键值对应的字符,否则返回默认值抛出异常:键值超过32位2.返回整型(int):android.os.SystemProperties.getInt(Stringkey,intdef);参数:key--键值,def--默认值返回值:有相应的键值,返回键值对应的整型,否则返回默认值抛出异常:键值超过32位3.返回布尔型(boolean):android.os.SystemProperties.getBoolean(Stringkey,booleandef);参数:key--键值,def--默认值返回值:有相应的键值,返回键值对应的布尔型,否则返回默认值抛出异常:键值超过32位Android之ViewFlipper使用ViewFlipper的介绍和使用常用属性android:inAnimation//设置View或ImageView进入屏幕时使用的动画android:outAnimation//设置View或ImageView退出屏幕时使用的动画android:flipInterval//设置View或ImageView之间切换的时间间隔常用方法setInAnimation:设置View或ImageView进入屏幕时使用的动画setOutAnimation:设置View或ImageView退出屏幕时使用的动画showNext:调用该方法来显示ViewFlipper里的下一个View或ImageViewshowPrevious:调用该方法来显示ViewFlipper的上一个View或ImageViewsetFilpInterval:设置View或ImageView之间切换的时间间隔startFlipping:使用上面设置的时间间隔来开始切换所有的View或ImageView,切换会循环进行stopFlipping:停止View或ImageView切换静态导入代码如下<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ViewFlipperandroid:id="@+id/flipper"android:layout_width="match_parent"android:layout_height="match_parent"android:flipInterval="2000"><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx1"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx2"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx3"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx4"/></ViewFlipper></LinearLayout>Activity代码publicclassViewpFilperextendsAppCompatActivity{privateViewFlippermFilper;@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.viewpfilper);mFilper=findViewById(R.id.flipper);mFilper.startFlipping();}}在res目录下新建一个anim文件夹,然后新建right_in.xml、right_out.xml存放动画right_in.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="1500"android:fromXDelta="100%p"android:toXDelta="0"/></set>right_out.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="1500"android:fromXDelta="0"android:toXDelta="-100%p"/></set>最后在viewpfilper.xml布局文件中引用<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ViewFlipperandroid:id="@+id/flipper"android:layout_width="match_parent"android:layout_height="match_parent"android:flipInterval="2000"><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx1"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx2"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx3"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx4"/></ViewFlipper></LinearLayout>动态导入在anim文件下再添加left_in.xml、left_out.xml。left_in.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="-100%p"android:toXDelta="0"/></set>left_out.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="0"android:toXDelta="100%p"/></set>GestureDetector手势检测器,监听我们的手势动作修改ViewFliperActivitypublicclassViewpFilperextendsAppCompatActivity{privateViewFlippermFilper;privateGestureDetectormDetector;//手势探测器privateMyGestureListenermMyGestureListener;@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.viewpfilper);mFilper=findViewById(R.id.flipper);//实例化SimpleOnGestureListener与GestureDetector对象mMyGestureListener=newMyGestureListener();mDetector=newGestureDetector(this,mMyGestureListener);mFilper.startFlipping();}@OverridepublicbooleanonTouchEvent(MotionEventevent){returnmDetector.onTouchEvent(event);}privateclassMyGestureListenerextendsGestureDetector.SimpleOnGestureListener{privatefinalstaticintMIN_MOVE=200;//最小距离//OnFling中根据X轴方向移动的距离和速度来判断当前用户是向左滑还是向右滑,//从而利用showPrevious()或者showNext()来显示上一张或者下一张图片@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){if(e1.getX()-e2.getX()>MIN_MOVE){mFilper.setInAnimation(getApplicationContext(),R.anim.right_in);mFilper.setOutAnimation(getApplicationContext(),R.anim.right_out);mFilper.showNext();}elseif(e2.getX()-e1.getX()>MIN_MOVE){mFilper.setInAnimation(getApplicationContext(),R.anim.left_in);mFilper.setOutAnimation(getApplicationContext(),R.anim.left_out);mFilper.showPrevious();}returntrue;}}}Android修改屏幕亮度获取系统Settings中的亮度系统屏幕亮度值在(0~255)之间,只需要调用以下方法即可。/***1.获取系统默认屏幕亮度值屏幕亮度值范围(0-255)***/privateintgetScreenBrightness(Contextcontext){ContentResolvercontentResolver=context.getContentResolver();intdefVal=125;returnSettings.System.getInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS,defVal);}修改APP界面屏幕亮度,不会影响其他APP修改自身APP亮度,只需要在ActivityOnCreate方法调用如下代码即可。/***2.设置APP界面屏幕亮度值方法***/privatevoidsetAppScreenBrightness(intbirghtessValue){Windowwindow=getWindow();WindowManager.LayoutParamslp=window.getAttributes();lp.screenBrightness=birghtessValue/255.0f;window.setAttributes(lp);}修改系统Settings中屏幕亮度,影响所有APP修改系统Settings中的屏幕亮度,由于会影响到所有APP,需要申请修改Settings的权限android.permission.WRITE_SETTINGS如果非系统签名的APP,需要用户手动授权后才可以修改背光亮度。/***5.修改Setting中屏幕亮度值**修改Setting的值需要动态申请权限<uses-permission*android:name="android.permission.WRITE_SETTINGS"/>***/privatevoidModifySettingsScreenBrightness(Contextcontext,intbirghtessValue){//首先需要设置为手动调节屏幕亮度模式setScreenManualMode(context);ContentResolvercontentResolver=context.getContentResolver();Settings.System.putInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS,birghtessValue);}AIDL中的in/out类比java中的数据流的输出流和输入流。java中的输出输入是以内存为主体。Androidaidl中的inout主体是以方法实现类为主体。AndroidStudio编译单个Modulegradlew:your_module_name:task_name举例:gradlew:app:assembleReleaseadbinstall报错大全以及解决方法我们可以通过查看android源码来确认报错种类,查看android源码,进入frameworks/base/core/java/android/content/pm目录,打开PackageManager.java。文件中声明了各种报错的类型以及Errorcode。本文对adbinstall的报错类型全部列举出来INSTALL_FAILED_ALREADY_EXISTS=-1;解释:apk已经存在。解决:adbinstall-r强制安装INSTALL_FAILED_INVALID_APK=-2;解释:无效的apk解决:排查方式与INSTALL_FAILED_INVALID_URI类似INSTALL_FAILED_INVALID_URI=-3;解释:无效的apkuri路径解决:可能的原因1.2.文件权限问题,chmod更改文件权限。INSTALL_FAILED_INSUFFICIENT_STORAGE=-4;解释:系统空间不足,无法安装apk解决:清理系统空间INSTALL_FAILED_DUPLICATE_PACKAGE=-5;解释:重复报名,表示系统中已存在相同的报名apk解决:卸载系统中重复包名,或者更改自己的apk包名INSTALL_FAILED_NO_SHARED_USER=-6;解释:缺少shareduserdidINSTALL_FAILED_UPDATE_INCOMPATIBLE=-7;解释:安装的apk与系统中已存在的apk签名不兼容解决:重新给apk进行签名,或者卸载掉系统中的签名冲突的apk。INSTALL_FAILED_SHARED_USER_INCOMPATIBLE=-8;解释:安装apk的sharedUserId系统中已存在的apk不同,导致不能兼容覆盖安装解决:方法1:查看Androidmanifest中android:sharedUserId信息,修改与之前app的sharedUserId相同。方法2:卸载系统中的apk,再安装。INSTALL_FAILED_MISSING_SHARED_LIBRARY=-9;解释:打包的apk缺少sharedlibrary库解决:在AndroidManifest中添加<uses-libraryandroid:name="xxx"android:required="false"/>将如下的文件xml拷贝到/system/permission/下,注意文件权限<?xmlversion="1.0"encoding="utf-8"?><permissions><libraryname="xxx"file="/system/framework/xxx.jar"/></permissions>INSTALL_FAILED_REPLACE_COULDNT_DELETE=-10;解释:library库替换时无法删除INSTALL_FAILED_DEXOPT=-11;解释:apk预编译错误,缺少dex或者是空间不足导致解决:多存在源码编译apk出现,源码编译apk选择了预编译,优化dex,导致apk里面没有dex。需要去除apk的预编译。INSTALL_FAILED_OLDER_SDK=-12;解释:系统的Android版本过低了,apk不支持解决:修改app目录下的“build.gradle”文件,将其中的minSdkVersion、targetSdkVersion修改后保持跟设备的androidAPI版本一致。INSTALL_FAILED_CONFLICTING_PROVIDER=-13;解释:检查应用的provider的唯authority属性与系统中其他应用providerauthority属性命令相同,产生冲突并且安装失败。解决:修改provider的authority命名INSTALL_FAILED_NEWER_SDK=-14;解释:系统的Android版本过高,apk不支持解决:apk需要适配高版本的Android设备INSTALL_FAILED_TEST_ONLY=-15;解释:apk为测试版本解决:安装加-t参数,adbinstall-t*.apkINSTALL_FAILED_CPU_ABI_INCOMPATIBLE=-16;解释:安装的APK文件arm指令格式与模拟器/真机的CPU架构上不兼容解决:安装到兼容的cpu模拟器/真机,或者apk的so库适配对应的cpuarm架构。INSTALL_FAILED_MISSING_FEATURE=-17;使用了一个无效的特性INSTALL_FAILED_CONTAINER_ERROR=-18;解释:SD卡访问失败,早期的android设备版本会出现类似问题。INSTALL_FAILED_INVALID_INSTALL_LOCATION=-19;解释:无效的安装路径INSTALL_FAILED_MEDIA_UNAVAILABLE=-20;解释:Android应用安装位置当前不可用,早期android设备会出现类似问题INSTALL_FAILED_VERIFICATION_TIMEOUT=-21;解释:apk安装验证超时INSTALL_FAILED_VERIFICATION_FAILURE=-22;解释:安装验证失败解决:打开android设备的未知来源应用安装开关。INSTALL_FAILED_PACKAGE_CHANGED=-23;解释:应用被改变了,检测到应用的codePath或者ResourcePath改变了INSTALL_FAILED_UID_CHANGED=-24;解释:新安装的包分配了一个不同的UID解决:卸载app,并删除系统中的残留文件和文件夹,如/data/data,/data/app/,system/app/等目录中包含app残留文件。INSTALL_FAILED_VERSION_DOWNGRADE=-25;解释:安装apk的VersionCode低于系统内的解决:更改VersionCodeINSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE=-26;解释:新安装的apktargetSDK较之前的apk低。解决:修改targetSdkVersionINSTALL_PARSE_FAILED_NOT_APK=-100;解释:非apk文件INSTALL_PARSE_FAILED_BAD_MANIFEST=-101;解释:无法解析的AndroidManifest.xml文件INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION=-102;解释:apk安装异常错误INSTALL_PARSE_FAILED_NO_CERTIFICATES=-103;解释:缺少签名或者签名方式有问题解决:打开应用,查看META-INF目录下查看是否有CERT.RSA文件。修改build.gradle重新签名。另外一种情况:AndroidN后apk增加了v2签名,查看apk是否v1,V2签名都有。androidN以下设备如果安装只有V2签名的apk,则会报该错,需要将apk,V1,V2都签名。INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES=-104;解释:签名冲突解决:卸载系统中的apk,再重新安装。INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING=-105;解释:签名编码问题解决:查看签名格式是否合法正确INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME=-106;解释:apk里使用了无效的包名解决:检查包名命令是否合法,比如多余的空格,下划线等。INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID=-107;解释:无效的shareduserId,shareduserid值有问题。解决:查看Androidmanifest中usersharedid的定义是否有问题。INSTALL_PARSE_FAILED_MANIFEST_MALFORMED=-108;解释:MALFORMED,畸形的。Manifest是无效的文件解决:查看AndroidManifest是否有问题。检查manifest的元素和属性的命令是否规范INSTALL_PARSE_FAILED_MANIFEST_EMPTY=-109;解释:Manifest是空的INSTALL_FAILED_INTERNAL_ERROR=-110;解释:系统问题导致安装失败解决:模拟器空间不足INSTALL_FAILED_USER_RESTRICTED=-111;解释:用户权限问题,无法安装解决:android手机的调试权限问题,把usb调试权限打开。一般手机的usb调试权限在隐藏的开发者模式菜单项目里面。INSTALL_FAILED_DUPLICATE_PERMISSION=-112;解释:androidmanifest存在重复定义的permissionINSTALL_FAILED_NO_MATCHING_ABIS=-113;解释:应用的so库,没有匹配的CPU指令集架构解决:build.gradle中添加不同的cpuabi体系。Android系统签名实现的三种方式无论采用何种签名方式,如果想实现具有系统权限的应用,在APK生成时,都需要在AndroidManifest.xml中配置android:sharedUserId=“android.uid.system”,如下所示<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.xxxx.xxxx"android:sharedUserId="android.uid.system"></manifest>ubuntu环境编译该方式需要在安卓源码编译的环境下,在将APK打包至安卓系统升级包时,需要配置Android.mk文件,通过在配置LOCAL_CERTIFICATE参数时,将其设置为PRESIGNED,如果需要改APK具有系统权限,使用系统签名,则需要设置为platformLOCAL_CERTIFICATE:=platform或shared或mediaAndroidTV的一些术语AndroidTV:带有GTVSpackagesGoogleTV:带有GTVS-GTVpackagesCDD:CompatibilityDefinitionDocumentVSR:VendorSoftwareRequirements一显示方面亮度对比度饱和度清晰度色域空间sRGB/BT709/NTSC/DCI-P3色准HDR/HDR10/DolbyVisionLCD/LED/MiniLED/MicroLED/OLED二存储方面内存DDR三接口方面HDMI1.4/2.0/2.1数字DTMB模拟ATVVGAYpbprAVUSB2.0/3.0Camera四外围Wifi蓝牙遥控语音/远场语音Dialog、AlertDialog如何实现全屏1、全屏Dialog实现方式publicclassFullScrreenDialogextendsDialog{publicFullScrreenDialog(Contextcontext){super(context);}@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);<!--关键点1-->getWindow().requestFeature(Window.FEATURE_NO_TITLE);Viewview=LayoutInflater.from(getContext()).inflate(R.layout.fragment_full_screen,null);<!--关键点2-->setContentView(view);<!--关键点3-->getWindow().setBackgroundDrawable(newColorDrawable(0x00000000));<!--关键点4-->getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT);}}android修改系统wifi默认状态wifi开关默认值android系统默认wifi开关状态是关,对应的初始值在frameworks/base/packages/SettingsProvider/res/values/defaults.xml文件中,对应字段<boolname="def_wifi_on">false</bool>将值修改为true即可默认打开wifi状态AndroidTv添加假待机Android13分析解决待机关机后wifi被关闭android系统复位(Reset恢复出厂设置)9.0源码分析Android9.0开机后打开Wifi流程和Wifi状态值的保存Android12.0源码系列之IMS(一)InputManagerServiceAndroidOverlay机制Android系统开发入门-11.添加hidl服务最后我在公司服务器上添加hidl失败了,在网上找了很多文章都没有成功。有没有大佬会添加hidl的。教教孩子一个hellword呗~~
2023-08-27 11:04 · android / Tv / hidl / framework
[文章] 关于ThreeJs的一些经验
关于3维坐标转屏幕坐标相信很多同学已经在网上查过了代码如下:conststdVector=selectObj.position.project(this.camera);consta=window.innerWidth/2;constb=window.innerHeight/2;constx=Math.round(stdVector.x*a+a);consty=Math.round(-stdVector.y*b+b);以上没有问题,如果出了问题,可能是你把模型转了一下,这样子计算出来的,就是不对的。一定要注意,你的模型没有转动。那是不是模型旋转就不行了呢?也不是,需要计算旋转的路程,然后对此进行处理,比较麻烦,所以请选择模型不转,转视角。旋转旋转有两个概念,一个是模型旋转,一个是视觉相机旋转,也就是物体自己在转,还是你的眼睛围绕着物体转。两种都可以达到旋转的视觉效果,如果是单物体的话。为了避免前面的旋转出现坐标转换出错的问题。所以我使用控制器旋转:this.controller.autoRotate=true;this.controller.autoRotateSpeed=0.1;总得上个图吧对于这种效果,我一开始是用精灵贴图的:但是地球是圆的,达不到客户要求的:鼠标放上放去坐标点的时候,提示的位置左下角在坐标的右上角。那怎么处理了这个呢?我做成了div,也就是:鼠标触摸到三维的坐标图标,然后把它的位置转成二维坐标,再动态控制div的位置,div是二维的,所以一直会向着你的。。即使我转到一个斜的角度:关于相机的位置一开始进入模型,不是客户所需要的角度那怎么办呢?我们可以在渲染的时候,不断地输出相机的位置,转到你的目标位置后,记录下位置。然后在初始化的时候,就设置相机在这个位置上,那么看到的就是你的理想角度了。好像也没啥了,最重要的是,我有一个很聪明的三维设计师!
2023-07-28 16:31 · three.js / 前端 / 模型 / 开发 / 经验
[问答] 拉大锯老师,建议多一些安卓项目实战呢

领券联盟等收获非常大,学到了很多经验,体验到了从开发者角度审视我们日常使用的app,体验了上帝视角。

2021-09-02 19:07 · 建议
[问答] 一道配置问题,求解答?
字节跳动原题,越详细越好,没有相关生产经验
2021-03-05 19:33 · 配置 / 字节跳动 / 生产
[问答] 哇,我要去面试了,求指教

大家有什么经验分享吗?没有过面试经历, 第一次面试,感觉很慌,特别是我这种半吊子,就更慌了


三轮面试啊啊啊啊,还有笔试题,大家有资源吗?

2022-06-09 11:05 · Android面试
[问答] 上架应用是不是要有个公司啊 ? 申请个公司要多少钱呢
最近想写个app上架市场,不知道怎么申请公司哪个同学有经验
2020-12-08 15:39 · app
[分享] 正则表达式引擎执行原理——从未如此清晰!
目前越来越多的网站、编辑器、编程语言都已支持一种叫“正则表达式”的字符串查找“公式”,有过编程经验的同学都应该了解正则表达式(Regular Expression 简写regex)是什么东西,它是一种字符串匹配的模式
2020-02-20 21:42 · 正则表达式 / 公式 / 字符串 / 查找 / 匹配
[问答] 大佬,刚入职,没工作经验,怎么开始工作?
老师,看完您的【领券联盟】后,找到了工作,是做视频会议的,明天入职,公司里Android开发只有一个人,现在的Android开发马上就要离职了,不久就要我自己负责整个项目了,心里很慌,怎么顶,有什么建议嘛
2020-04-20 12:03 · 工作经验
[文章] Android 应用Jit影响卡顿了?
总结最近一直在优化页面,这次需求我碰过的页面,老页面虽然卡,但是又不是不能用啊。还是先积累下经验先,等我各种工具都玩熟悉了,知道哪里出问题了,才有优化的动力。
2021-12-02 22:04 · Android / 性能优化 / Jit / 卡顿
[问答] 电脑显示器哪家强
价格当然是低一些的好,第一次买显示器,没啥经验,希望大家帮忙排排雷。
2020-03-03 11:34 · 显示器 / 猿日常
[问答] 支付宝服务- 直接给我onDestroy()?
大伙教一下,无经验菜鸟一枚。
2020-09-07 19:55 · 支付宝支付服务
[文章] 我的大三春招实习生面试经历(填坑)
我基本没有参加什么比赛,项目经验非常缺乏,其实到现在为止,我依旧觉得自己这技术有很大问题,希望在接下来的实习中得到解决。为了能进一个不错的公司吧,花了蛮多时间去刷算法题,以及一些计算机基础的知识。
1970-01-01 00:00 · 面试体验
[文章] 产品经理如何编写高分简历?
产品经理在编写高分简历时,应突出展现自己的核心竞争力、业务理解力、团队协作与领导能力、以及对产品全生命周期管理的实际经验和成果。
2024-01-25 12:15 · 产品经理 / 面试 / 建立 / 简历
[文章] 校园恋爱的门票来自于透支发展空间
但在多次经验都在新手村而已。等出社会就会发现,女生势利起来了。不,女生也是从校园出来的,一样都怀有一颗恋爱的心。她们,门槛就是恋爱得比单身更好。
2021-03-23 20:59 · 思考 / 校园恋爱
[文章] 如果提高一天的效率?多维竞争!
学习之后,自己在模仿一下写一个差不多的验收一下,写了两个月了我总结一下一些收获吧。首先得有一个唯一的指标效率。
2021-01-06 17:18 · 思考
[文章] Android面试官:你在教我做事吗?
面试安卓工程师时,招聘者通常会综合考量候选人的理论知识、实践经验和解决问题的能力。
2024-01-26 17:51 · 面试 / 安卓 / 系统 / AOSP / java
[问答] 淘宝联盟域名无效

域名已备案, 通过 域名/roots.txt可以访问, 还是提示检验失败, 不知道哪位有经验的可以解答解答

2021-11-16 17:01 · 淘宝联盟
[问答] 被360加密过的包如何反编译?
今天在学习反编译的时候,遇到了360加密后的的包,但是试了很多的方法都没有成功,有没有大佬分享一下经验
2020-04-23 11:24 · Android逆向
[文章] 25000字总结Android优秀的第三方框架、各种学习资料(下) Camera、Video、指纹、聊天IM、投屏等
前言前几天总结了Android中常用到的系统组件、Design组件、自定义组件等等系列点击跳转地址:25000字总结Android优秀的第三方框架、各种学习资料汇集一系统组件、Design组件、自定义组件等等今天继续更新
2020-08-06 09:32 · android / 第三方框架
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 8