【Android编程】
机器人的忧伤
Progress is not created by contented people.
展开
-
MTK(android init.rc) 开机启动服务
MTK(android init.rc) 开机启动服务在开机往往我们想要做一些初始化的操作,这时候可以使用init.rc文件来实现,当然书写一个开机启动的服务也需要规范的1. 生成可执行文件假设是C程序,则需要准备C程序的源码,在我的例程中是一个在开机完成(android标志结束后,当然你也可以设置在boot阶段)时进行检测文件存在,没有则创建。代码在package/app/PxTPConfigRead里面。首先将其编译到out目录下的system/bin/下。可以在build/target/pr原创 2020-09-19 15:04:24 · 1548 阅读 · 1 评论 -
广播实现Android关机及重启
广播实现Android关机及重启1. 编写Java代码 case R.id.broadcast_reboot: //重启 Log.v("Reboot", "Reboot-->broadcast_reboot"); Intent i = new Intent(Intent.ACTION_REBOOT); i.putExtra("nowait", 1); i.putExtra("interval", 1); i.putExtra("window", 0); sen转载 2020-08-12 11:51:45 · 1333 阅读 · 1 评论 -
It looks like git-am is in progress. Cannot rebase.
git pull 的时候出现这样的错误。 It looks like git-am is in progress. Cannot rebase.用如下方法解决:rm -rf .git/rebase-apply这句话最好在工程的根目录执行。原创 2016-05-18 09:44:33 · 2090 阅读 · 0 评论 -
SharedPreference.Editor的apply和commit方法异同
我在工作中用到了editor.apply();提交数据,在Android 中存储数据时经常用SharedPreference,今天看了sharedPreference.Editor 的提交方式特意收集和总结了一下apply() 和commit方法的异同abstract voidapply()Commit your preferences chan转载 2016-05-23 15:34:33 · 396 阅读 · 0 评论 -
SharedPreferences之getBoolean
首先,创建sharedpreferences的实例后调用getpublic abstract floatgetBoolean(String key, boolean defValue)key:检索keydefValue:如果存在这个偏好就返回值所以说,如果第一次getBoolean时,如果key值检索不到,直接获取defvalue的值。原创 2016-05-23 15:36:31 · 9471 阅读 · 0 评论 -
各国语言对应翻译表
为了工作方便,自己做了一个地区语言的英文翻译;让自己可以更快的找到自己需要的地方。同时,分享给大家,谢谢。中文《======》各国语言(翻译)序号中文翻译1阿尔巴尼亚语የአልባኒያ2阿拉伯语العربية3阿姆哈拉语አማርኛ原创 2016-06-27 16:21:36 · 9945 阅读 · 0 评论 -
Android之右上角三点menu消失原因
在创建一个activity时,发现要使用到menu键去弹出pop框的三个点消失了1、首先@voerride 一个OnCreateOptionsMenu(Menu menu)注意:创建Menu的方法返回一个boolean值,return super.onCreateOptionsMenu(menu) 需要修改为原创 2016-06-06 18:11:36 · 4982 阅读 · 2 评论 -
设置闹钟——不让下拉菜单中显示闹钟信息
下拉菜单中: 若你设置闹钟后,在下拉菜单中会显示设置的闹钟 ?:如何隐藏下拉菜单中的闹钟显示呢!总结一下:方案一:在SystemUI中,修改StatusBarHeaderView.java中的函数updatevisibility()//mAlarmStatus.setVisibility(mExpanded && mAlarmShowing ? View.VISI原创 2016-08-18 15:15:08 · 1029 阅读 · 0 评论 -
[Linux]本地模拟配置服务器端git仓库
在本地建立base ,gitA , gitB;用base作为服务器端,gitA、gitB作为本地端从服务器中clone和push代码,本地验证是OK的。以下是我总结的内容:1、创建 base gitA gitB 三个目录2、$ cd base $ git config --global user.name "Your Name" //Y原创 2016-11-08 10:41:36 · 775 阅读 · 1 评论 -
Android N上语言列表
Android N上语言列表与N之前有很大变化,进入语言列表,可看到如图1所示,图中上面的框框是系统用户所选择的语言(Android N上用户可以选择好几种语言,排在第一个是系统的语言),下面的框框是一个添加语言的按钮,点击之后可以去添加语言,点击之后会进入一个语言列表供选择添加,所图2所示,这个列表中分成两部分,上面部分"Suggested", 下面部分是"All Languages".出现原创 2016-11-18 11:36:57 · 2710 阅读 · 2 评论 -
RAM中的那点事~~
今天在看内存相关的内容时,发现device中的RAM的详细信息如何调用的方法,追踪一看,略有收获~~读取RAM信息的类(device中的信息保存在/proc/meminfo中)地址:frameworks/base/core/java/com/android/internal/util/MemInfoReader.java函数: public void readMem原创 2016-12-29 15:10:55 · 655 阅读 · 0 评论 -
Android布局优化之ViewStub、include、merge使用与源码分析
在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。Android官方给了几个优化的方法,但是网络上的资料基本上都是对官方资料的翻译,这些资料都特别的简单,经常会出现问题而不知其所以然。这篇文章就是对这些问题的更详细的说明,也欢迎大家多留言交流。一、include首先用得最多的应该是include,按照官方的意思,include就是为了解决重复转载 2017-08-01 19:31:56 · 401 阅读 · 0 评论 -
图片太大导致 imageView无法显示
图片太大导致 imageView无法显示项目中遇到预置大图,在imageView加载时显示不出来从网络中收集资料,明白了原来imageView 在把图片填充到控件中,是通过分辨率(例如:720*1280)把像素点 填充到画布上 ;也就是说,不管你把图片从20M 压缩到2M,在画布上只会根据你的实际分辨率来绘制bitmap. 你可以把你压缩过的图片放到PS上看一下实际绘制会多大...原创 2018-03-02 16:31:48 · 3671 阅读 · 0 评论 -
AVC 报错问题示例以及解决方案
问题:在一直移远4G三网投模块时,发送短信时信号消失。通过log 发现avc,然后通过同事沟通和指导,学到了如何快速修改验证此问题的方法。在此,记录一下我的学习和经验的积累过程;同时,也分享出来以供遇到类似问题的童鞋可以学习和解决自己的问题,原创 2019-01-22 16:56:38 · 5842 阅读 · 0 评论 -
Android Studio自动生成带系统签名的apk
目录前提需要准备的文件:1、生成你自己的jks文件2、使用keytool-importkeypair对jks文件引入系统签名3、配置gradle(app)4、运行前提如果你需要开发一个带有系统权限的app,往往需要配置SharedUserId,比如:<?xml version="1.0" encoding="utf-8"?><manifes...转载 2019-03-12 11:57:10 · 550 阅读 · 0 评论 -
Cannot run program "aapt": error=13, Permission denied
原因:04-19 12:35:56 I/YPYPFENRUW8SFIRG: -----------------------------------------04-19 12:35:56 I/YPYPFENRUW8SFIRG: Test package armeabi-v7a android.app started04-19 12:35:56 I/YPYPFENRUW8SFIRG:原创 2016-05-18 09:42:32 · 15075 阅读 · 0 评论 -
Ubuntu增加swap交换空间的步骤
1.首先用命令free查看系统内 Swap 分区大小。free -mtotal used free shared buffers cachedMem: 2012 1960 51 0 748 950-/+ buffers/cache:原创 2016-05-18 09:39:21 · 4068 阅读 · 0 评论 -
长按Home键启动默认的搜索应用
安装多个搜索应用后,长按Home键启动默认的搜索应用 如何设置默认的谷搜索应用? 修改frameworks/base/services/core/java/com/android/server/search/SearchManagerService.java的getAssistIntent方法public ComponentName getAssi原创 2016-05-18 09:29:52 · 735 阅读 · 0 评论 -
当push的时候应该注意的ODEX到底是什么文件
ODEX是安卓上的应用程序apk中提取出来的可运行文件,即将APK中的classes.dex文件通过dex优化过程将其优化生成一个·dex文件单独存放,原APK中的classes.dex文件会保留的。ODEX类 型 ::可运行文件说 明 ::安卓上的应用程序apk功 能 ::加快软件到启动速度 .dex文件单独存放到意义:这样做可以加快软原创 2015-11-25 10:01:20 · 817 阅读 · 0 评论 -
android 5.1预置apk
作为一个菜鸟,前一段时间在工作中按照前辈的方法比葫芦画瓢的去预置apk.自己并不明白,前辈们为什么会这么做?这么做的意义是什么?这种预置方法有什么好处?今天看了一下资料,明白其中涉及到的4中预置apk的方法和这么预置的意义所在。于是,就向广大童鞋分享一下~~~~ 一、如何将带源码的APK预置进系统?1) 在 packages/apps 下面以需要预置的 APK的 名字创建一个新原创 2015-11-25 15:23:57 · 904 阅读 · 0 评论 -
Android.mk的语法规范
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。一、Android.mk文件的用途一个android子项目中会存在一个或多个Android.mk文件1、单一的Android.mk文件直接参考NDK的sampl转载 2015-12-28 15:54:15 · 440 阅读 · 0 评论 -
Android.mk文件格式
LOCAL_PATH :=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := apk_nameLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(LOCAL_MODULE).apkLOCAL_MODULE_CLASS := APPSLOCAL_MODULE_SUFFIX原创 2015-11-26 10:34:32 · 838 阅读 · 0 评论 -
Android运行时异常“Binary XML file line # : Error inflating class”
我遇到该问题常常都是因为修改了资源文件所引起,大致有以下几种方式来解决: 1. 引用类名问题:自定义了一个View,将他用于布局文件中,假设他的包名叫MyPackage,类名叫MyTestView,这个时候你在XML作为布局元素来布局的话,必须使用完整路径名,也就是包名加类名来引用,用MyPackage.MyTestView来进行引用。 2.构造函数问题:自定义一个View,必转载 2016-01-27 11:35:19 · 581 阅读 · 0 评论 -
View中的draw和onDraw的区别
1.大概扫一下源码就可以明白,draw()这个函数本身会做很多事情, * 1. Draw the background * 2. If necessary, save the canvas' layers to prepare for fading * 3. Draw view's content转载 2016-01-27 11:41:00 · 661 阅读 · 0 评论 -
Android java 中如何优雅的结束线程
线程对象属于一次性消耗品,一般线程执行完run方法之后,线程就正常结束了,线程结束之后就报废了,不能再次start,只能新建一个线程对象。但有时run方法是永远不会结束的。例如在程序中使用线程进行Socket监听请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循环中,如while循环。当需要结束线程时,如何退出线程呢?有三种方法可以结束线程:1.使用退出标志,使线转载 2016-01-27 11:54:54 · 424 阅读 · 0 评论 -
java.lang.OutOfMemoryError异常解决方法
java.lang.OutOfMemoryError异常解决方法原因:常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;3.代码中存在死循环或循环产生过多重复的对象实体;4.使用的第三方软件中的BUG;5.启动参数内存值设定的过小;常见错误提示:1.tomcat:转载 2016-01-27 11:59:44 · 511 阅读 · 0 评论 -
Android 编译系统 (二)
LOCAL_NO_MANIFEST如果你的Package没有Manifest(AndroidManifest.xml),你可以设置LOCAL_NO_MANIFEST:=true.------分隔符,方便下次编辑修改------If your package doesn't have a manifest (Androi转载 2015-12-09 10:19:48 · 896 阅读 · 0 评论 -
Android中集成第三方软件包(.jar, .so)
Android中可能会用到第三方的软件包,这包括Java包.jar和Native包.so。jar包既可通过Eclipse开发环境集成,也可通过编译源码集成,看你的工作环境。 假定自己开发的程序为MyMaps,需要用到BaiduMaps的库,包括baidumapapi.jar和libBMapApiEngine_v1_3_1.so。 一、Eclipse中集成第三方jar包及.so动态库转载 2015-12-09 10:50:05 · 597 阅读 · 0 评论 -
Android 中随机画线
在刚收到这个任务是,我就想起了Bitmap Canvas Paint这些类。并且发现画线的长短,颜色都是随机的,这也说明了每次画线时颜色和长短都要随机生成;而线的长短则是由坐标控制的,并且启始坐标是手机屏幕中心。所以我在onCreate()中使用 WindowManager wm = this.getWindowManager(); int原创 2016-01-27 18:03:24 · 1392 阅读 · 0 评论 -
[FAQ04318]如何修改出厂默认日期和默认时区
[DESCRIPTION] 手机第一次开机默认是没有定制时区的(默认是GMT:+00:00),但是会有一个默认日期,如2013年1月1日。如何客制化默认时区以及时间呢? [Solution] 一、修改默认时间 1、修改RTC默认日期:Android L之前: \alps\mediatek\custom\[project]\preloader\ inc\cust_转载 2016-04-08 14:28:16 · 1097 阅读 · 0 评论 -
论删除gmscore后可能出现的问题
测试发现:当删除gmscore(google settings)时,发现使用google 的Maps时,无法添加google 账户;并且使用google地图的定位功能,很长时间都没有定位成功;同时,我通过和有gmscore(google设置)的Maps对比,google账户可以正常登录,在一定时间内google地图可以定位成功。所以,个人认为这是gmscore被删除引起的;原创 2016-05-30 16:47:48 · 1587 阅读 · 0 评论 -
Android启动优化,去除白屏或者黑屏
Android启动优化,去除白屏或者黑屏 App启动的方式:这里写图片描述 冷启动:指后台没有改应用的进程,重新创建进程,过程为,实例化Application,然后实例化入口Activity,最后显示Activity. 热启动:后台中存在当前的进程,直接从进程中启动,不用重新创建Application,只需要实例化入口Activity即可 优化App启动过程的三个建议:Application转载 2016-05-30 17:13:20 · 516 阅读 · 0 评论 -
在64位ubuntu上编译kitkat4.4时遇到HashSet_jni.h错误导致编译中止的问题
在64位ubuntu上编译katkit4.4时经常遇到以下错误导致编译中止,困扰了很长时间才解决此问题,尝试过几种不同的方法,最后总算找到了根本原因。先看下错误现象,提示HashSet_jni.h error。错误现象:In file included from externalromium_org/content/common/android/hash_set.cc:5:0:转载 2016-05-18 09:22:39 · 678 阅读 · 0 评论 -
L版本开机提示“Android正在升级或启动”
导致该现象出现的可能1、L版本上预置apk不正确,导致32位与64位兼容性问题2、如果您有重新push,再开机就会因为odex是旧的,导致重新提取。3、安装APK或开机过程中掉电4、L1上设置关机闹钟,闹钟响起时择暂停,按Power键开机提示“android 正在启动”5、apk对应的dex档被破坏/丢失,或OTA升级/APK/system Jar/包被更换与dex档不匹配原创 2015-11-25 10:10:51 · 1687 阅读 · 0 评论