Android
杨鑫校
学无止境!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SampleWindow demo
SampleWindow.javapackage understanding.wms.samplewindow;import android.content.res.Configuration;import android.view.Surface;import android.view.View;import android.view.InputChannel;import android.view.DisplayInfo;import android.view.Gravity;i.原创 2021-09-07 09:56:55 · 415 阅读 · 1 评论 -
windows patch adb permission
patch文件给某个app授权及撤销:执行结果如下,涂掉的是包名脚本内容:grant_dl.bat@echo grant permission of sdcard rw for pkg_name@adb shell pm grant pkg_name android.permission.READ_EXTERNAL_STORAGE@adb shell pm grant pkg_name android.permission.WRITE_EXTERNAL_STORAGE@adb .原创 2021-05-12 14:00:24 · 370 阅读 · 1 评论 -
Android系统启动过程脑图
原创 2021-03-12 16:51:37 · 304 阅读 · 0 评论 -
Android源代码模块引用三方so方法
这里以google的tensorflow库为例,在系统设置模块mk文件中引入,具体方式为:1、声明编译so库include $(CLEAR_VARS)LOCAL_MODULE := libtensorflowlite_jniLOCAL_SRC_FILES := libs/libtensorflowlite_jni.soinclude $(PREBUILT_SHARED_LIBRARY)2、修改public.libraries.txtadb pull /system/etc/publi原创 2020-12-07 13:09:09 · 1030 阅读 · 0 评论 -
Android编译mk文件引入三方jar、aar、so
引入aar:LOCAL_STATIC_JAVA_AAR_LIBRARIES := okayrom-lib-http-1.1.0.9 \引入jar:#当前模块依赖的 Java 静态库 为引用jar库的别名,可以随便取名,一般就是用库名称就可以了。LOCAL_STATIC_JAVA_LIBRARIES := haha \##############################################include $(CLEAR_VARS)#作为预编译库的引用对象 指定p..原创 2020-12-05 11:29:29 · 875 阅读 · 0 评论 -
Android mk文件指定aapt參數不压缩指定资源
例:指定不压缩tflite后缀文件。LOCAL_AAPT_FLAGS += -0 "tflite"原创 2020-11-27 16:41:30 · 589 阅读 · 0 评论 -
Google原生输入法LatinIME词库扩容(Windows10环境)
去年在Linux(ubuntu)环境下针对LatinIME进行词库扩容处理,针对LatinIME的词库构建进行了一些列分析,大家可以查阅历史文章。词库扩容最近试了一下是可以的,具体流程大致如下(windows10环境):1、安装MinGw以及gcc、g++、gdb等,下载地址:e795, 安装完成配置环境变量到path(..\mingw\bin)2、进入到..\cpp\command目录进行makewindows下没有make命令的,需要到MinGw\bin目录下重命名mingw32-mak原创 2020-07-06 13:54:40 · 2385 阅读 · 6 评论 -
Ubuntu14.04编译Android源码之Java环境切换shell脚本
脚本运行环境不限于Ubuntu14.04,可以切换Java6\7\8,具体切换方法为:yang@yang:~/code$ . ~/sw_java.sh The version you want(6、7、8): 7Changing to java ---------> 7******************check version************************...原创 2018-02-06 10:10:27 · 537 阅读 · 1 评论 -
android_mk记录
include $(BUILD_PACKAGE)编译打包成APK文件include $(BUILD_STATIC_JAVA_LIBRARY)用它来编译生成JAVA库(打包成.jar文件)include $(BUILD_EXECUTABLE)编译C/C++应用程序include $(BUILD_STATIC_LIBRARY)用它来编译生成C\C++原创 2018-01-24 13:42:21 · 294 阅读 · 0 评论 -
Android 匿名共享内存demo篇(一)
Android系统的IPC方式通常为:文件、socket、binder、messenger、AIDL、ContentProvider,此外还有个Anonymous Shared Memory(匿名共享内存),这篇文章介绍Ashm基础使用相关知识。Android api27加入了SharedMemory类,27之前需要通过反射去拿到文件描述符。 demo为MainActivit...原创 2019-03-01 11:18:49 · 1652 阅读 · 0 评论 -
repo,可以直接复制粘贴到你的~/bin/repo文件中
#!/usr/bin/env python# repo default configuration#import osREPO_URL = os.environ.get('REPO_URL', None)if not REPO_URL: REPO_URL = 'https://gerrit.googlesource.com/git-repo'REPO_REV = 'stable'...原创 2019-03-01 10:00:27 · 4246 阅读 · 0 评论 -
修改替换/system/framework/base
mmm framework/base/core/resmmm framework/baseadb push out/target/product/(自己的)/system/framework/framework-res.apkadb push xxxx/framework.jaradb push out/target/product/(自己的)/system/framework/ar...原创 2019-01-08 15:30:10 · 878 阅读 · 0 评论 -
Ubuntu14.04下载Android源码~aosp
create dir:mkdir ~/binPATH=~/bin:$PATHvim ~/bin/repo cp content to repo file ,url is:http://7xpgbx.dl1.z0.glb.clouddn.com/repo或者 curl https://storage.googleapis.com/git-repo-downloads/re...原创 2018-08-11 14:53:17 · 615 阅读 · 0 评论 -
Android System Server
基于Android5.0.1原创 2018-02-27 18:41:17 · 325 阅读 · 0 评论 -
Android_EntropyMixer研究
这篇文章专门分析Android中的一个服务:EntropyMixer,源代码位于:framework/base/service/core/java.com.android.server.EntropyMixer.java,该类继承自Binder,总共也就二百多行,Entropy翻译做熵,是Linux系统中描述系统有序性的一个标识,该值越大表示系统有序性越差,在Android中EntropyMi...原创 2018-02-27 18:23:32 · 1670 阅读 · 0 评论 -
android_源码目录结构
Android源代码结构分析参考(http://blog.youkuaiyun.com/tfslovexizi/article/details/51888458)/bootable这个目录下存放android部分启动相关代码,包括android的recovery模式,一般用于进行OTA升级,由C++编写,可以看到用于显示的ui.cpp和安装的install.cpp,模式入口为recovery.转载 2018-01-30 10:26:25 · 489 阅读 · 0 评论 -
Android_source_arch
.├── abi│ └── cpp├── art│ ├── benchmark│ ├── build│ ├── cmdline│ ├── compiler│ ├── dalvikvm│ ├── dex2oat│ ├── dexdump│ ├── dexlist│ ├── disassembler│ ├── imgdiag│原创 2018-01-30 10:24:23 · 521 阅读 · 0 评论 -
Android_TextView学习
Android4.4上EditText光标样式需要修改,追查一下系统实现,从系统层进行修改,记录一下。查看TextView和EditText源码发现,EditText也是继承自TextView,在TextView的Constructor方法中,看到这么一行:mMovement = getDefaultMovementMethod();点进去发现是return的 null,再到EditT原创 2018-01-26 14:40:23 · 540 阅读 · 0 评论 -
power_off_alarm
关机闹钟问题闹钟设置中设置闹钟响铃时间和暂停时长,该配置记录在/data/data/com.android.deskclock/shared_prefs目录下的com.android.deskclock_preferences.xml文件中,设置完闹钟并且关机再次启动,系统会启动deskclock下面的AlarmService服务,最终调用AlarmStateManager的setMissed原创 2018-01-24 13:41:27 · 907 阅读 · 0 评论 -
Android源码记录
~\kernel\drivers\staging\android\ashmem.c~\kernel\drivers\staging\android\binder.c~\kernel\drivers\staging\android\logger.c~\kernel\drivers\staging\android\sync.c~\kernel\drivers\staging\andro...原创 2019-03-01 23:30:34 · 222 阅读 · 0 评论 -
windows 下载aosp
参考了这篇博客:https://blog.youkuaiyun.com/freekiteyu/article/details/70939672转载 2019-03-02 08:34:27 · 1231 阅读 · 0 评论 -
Android 匿名共享内存基础数据结构篇(二)
Android匿名共享内存系统架构图如上图所示,Android系统匿名共享内存(以下以Ashmem代替)以Ashmem驱动为基础,在运行时库提供了cutils library来对Ashmem驱动进行访问,同时又在Framework层提供了C++和Java类接口来访问cutils。 这篇文章主要学习kernel层ashmem的基础数据结构,先来看看Ashmem到底是什么!源码版本An...原创 2019-03-04 10:24:23 · 923 阅读 · 0 评论 -
Android 匿名共享内存初始化篇(三)
Ashmem初始化流程从ashmem.c的__ashmem_init方法开始,代码如下:835 static int __init ashmem_init(void)836 {837 int ret;838 839 ashmem_area_cachep = kmem_cache_create("ashmem_area_cache",840 ...原创 2019-03-04 19:08:48 · 501 阅读 · 0 评论 -
Google原生输入法LatinIME词库构建流程分析(二)
在Google原生输入法LatinIME词库构建流程分析(一) 中分析LatinIME构建流程进行到了dict_trie->dict_list_->init_list这一步,然后就是构建N-gram信息了,N-gram构建过程在Google原生输入法LatinIME词库构建流程分析(三)--N-gram信息构建中进行了分析,那么接下来继续:bool DictBuilder::bu...原创 2019-04-04 16:36:11 · 1161 阅读 · 0 评论 -
Google原生输入法LatinIME词库构建流程分析(一)
进入到cpp目录下(pwd=.../cpp/),在command目录中有个pinyinime_dictbuilder.cpp文件,源码中可以看到main函数,这里就是词库构建的入口,接下来看下main函数源码: 25 /** 26 * Build binary dictionary model. Make sure that ___BUILD_MODEL___ is defined 2...原创 2019-03-27 11:19:37 · 3855 阅读 · 2 评论 -
Google原生输入法LatinIME词库构建流程分析--相关数据结构分析
其实输入法词库相关数据结构的定义基本上都在头文件dictdef.h文件中,进入到代码目录cpp下.初始化字库,首先读取txt文件内容到数据结构lemma_arr和valid_hzs中,lemma_arr是一个数组类型为LemmaEntry,下面来看下LemmaEntry定义(cpp/include/dictdef.h)://rawdict_utf16_65105_freq.txt每一行是...原创 2019-03-27 19:02:40 · 2236 阅读 · 8 评论 -
Google原生LatinIME输入法spl_buf_数据内容
"A\000\000\000\000\000\000aAI\000\000\000\000\000\\AN\000\000\000\000\000VANG\000\000\000\000\222AO\000\000\000\000\000qBA\000\000\000\000\000JBAI\000\000\000\000]BAN\000\000\000\000QBANG\000...原创 2019-03-28 19:35:01 · 1034 阅读 · 0 评论 -
Google原生输入法LatinIME引擎初始化流程分析(二)
引擎初始化首先是在Java层调用native的初始化方法,Java层调用如下: private void initPinyinEngine() { byte usr_dict[]; usr_dict = new byte[MAX_PATH_FILE_LENGTH]; // Here is how we open a built-in d...原创 2019-04-09 11:10:33 · 2367 阅读 · 0 评论 -
Android 只获取特定包名log
此命令用于在Ubuntu命令行中获取指定包名(应用)的所有log信息:adb logcat --pid=$(adb shell pidof -s pkg_name)把pkg_name换成需要过滤的应用包名即可,特此记录。StackOverFlow...原创 2019-05-11 15:00:00 · 2407 阅读 · 1 评论 -
ubuntu 18.04 编译Android坑s
去除所有本地化的设置error:flex-2.5.39: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed. Aborted (core dumped)或者F...原创 2019-05-28 09:34:00 · 1166 阅读 · 2 评论 -
ubuntu16.04 compile android L error
1. installsudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev...原创 2019-05-29 12:53:23 · 366 阅读 · 0 评论 -
android intent MIME type
{".3gp", "video/3gpp"}, {".apk", "application/vnd.android.package-archive"}, {".asf", "video/x-ms-asf"}, {".avi", "video/x-msvideo"}, {".bin", "application/octet-stream"}, {".bmp", "image/bmp"},转载 2016-10-27 18:18:50 · 502 阅读 · 0 评论 -
Android开发之基础----------多媒体图片加载、拍照和摄像(一)
多媒体:文字、图片、音频、视频1.图片大小 = 图片的总像素 * 每个像素占用的大小 图像格式:* 单色图:每个像素占用1/8个字节* 16色图:每个像素占用1/2个字节* 256色图:每个像素占用1个字节* 24位图:每个像素占用3个字节Android系统以ARGB表示每个像素,所以每个像素占用4个字节,很容易内存溢出,所以需要对图片进行缩放。图片缩放加原创 2015-10-03 19:05:24 · 885 阅读 · 0 评论 -
Android开发之基础------------------网络编程(一)
一、获取请求网页的响应源码(网页源码查看器)步骤:1.写布局文件 布局文件说明:文本输入框用于输入请求的地址 设置按钮用于点击获取网页源码 显示在文本域中 文本域设置为带滚动条<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools原创 2015-10-03 15:56:54 · 456 阅读 · 0 评论 -
Android开发之基础新特性-------------Fragment&帧动画(一知识点)
一、Fragment:在一个Activity中切换界面,只切换Fragment中的内容。生命周期:切换时,会销毁在创建,与Activity一样。实现步骤:1.创建Fragment布局文件xml。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_原创 2015-10-04 13:53:22 · 702 阅读 · 0 评论 -
Android开发基础之-----------补间动画
补间动画:图片的原形态到新形态过度过程中生成的动画。包括位移、旋转、透明和缩放。用到的四个类:TranslateAnimation scaleAnimation AlphaAnimation RotateAnimation 这四个类都继承了Animation。效果图:点击每个按钮实现响应的效果。。。实现步骤: 1.布局文件包括以上几个按钮和一个ImageView,比原创 2015-10-04 17:06:37 · 440 阅读 · 0 评论 -
Android开发之基础-------------Get请求和Post请求
向服务器提交请求时,有两种提交方式,下面对这两种提交方式进行简单的整理。一、get方式 和 post方式 请求服务器的区别:1. 请求的url地址不同get:http://kr41m1i4fwt359b:8080/itheima75/servlet/LoginServlet?username=root&pwd=123post:http://kr41m1i4fwt359b:8080/原创 2015-10-03 16:05:49 · 683 阅读 · 0 评论 -
Android开发之基础------------测试相关、sdcard操作、SharedPreferences存取
好的软件是测试出来的!一.对app的测试常见的测试方法有monkey测试,使用adb shell指令完成。1.具体指令: adb shell 进入手机的Linux环境。monkey 包名(packageName) 测试次数(count ) monkey测试可以形象比喻成让一只淘气的小猴子在你的手机上点上指定的(count)次数。二、如果需要测试代码原创 2015-10-03 12:12:22 · 470 阅读 · 0 评论 -
Android开发之基础-------XML文件的序列化和解析
xml文件作为一种数据存储文件是经常用得到的,下面针对xml文件的序列化和解析进行简单的总结以短信备份为例:1.找到控件设置点击事件2.获取短信内容,以Bean对象的方式封装到list集合中3.遍历list集合中的短信数据,存储到xml文件中 XmlSerializer try{ //1.通过Xml获取一个XmlSerializer对象原创 2015-10-03 12:24:48 · 536 阅读 · 0 评论 -
Android开发之基础---------多媒体音乐和视频播放
一、音乐播放在后台也可以,所以应该被定义成一个后台服务程序,在播放服务中包括开始、暂停、停止、继续功能。private void play() { // TODO Auto-generated method stub player.reset(); try { player.setDataSource("sdcard/bzj.mp3"); playe原创 2015-10-04 10:56:22 · 661 阅读 · 0 评论
分享