2018-03-09 11:28:16 oak150 阅读数 10047
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19564 人正在学习 去看看 任苹蜻

最近公司手机需要刷root,于是选择了小米来做这个设备(比较小米对开发者还是很友好的)

之前刷过几台,卡刷。

今天刷的时候,手动选择安装包的时候,提示我 验证失败 当前版本与卡刷包的安卓版本不一致

于是上MIUI论坛找,上面的人都说,是什么系统版本不一样云云,但是我之前在同一个手机上是成功刷过的,而且也找不到低版本的开发版的包了,于是我就在思索。

突然看到一个不起眼的话,就是,一个开发包只能使用一次,使用过就不能再使用了

我用的电脑是Mac,每次下载完后会自动解压,虽然刚刚解压我就关闭了,不过也是打开了,然后用adb把包导入手机。

于是,我就用手机上官网下,再重复卡刷的流程,就可以刷机了。

在网上没有看到这个方法,因此写下这个文章,希望能对你们产生帮助。


关键点:一个刷机包只能使用一次,一旦解压,就不可再继续使用  ,直接手机上官网下载即可。

2018-12-23 17:12:42 tianzhidutian 阅读数 605
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19564 人正在学习 去看看 任苹蜻
前言:本文是自己制作android卡刷包的实践过程记载,参考了网上成熟的步骤,但还是遇到了一些问题,其中部分并没详细的介绍,所以在此重新整理一遍。

准备工作:

由于编译android对计算机性能要求较高,根据网上建议,放弃了虚拟机。用个人笔记本安装了双操作系统。
OS:Ubuntu16.04系统;
内存:8G内存;
硬盘:150G硬盘(源码加编译需要120G左右,需要制作ota包需要150G左右,因此硬盘不能小于150G)。	

源码的下载

 1.安装git
sudo apt-get install git 
git config –global user.email “test@test.com” 
git config –global user.name “test”
2.安装repo工具
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
3.选取源码
[源码列表](https://blog.csdn.net/u013005791/article/details/52228727)	
本人经验第一次选取了8.0.1版本,启动虚拟机黑屏,换内核多种方法无效,查不到原因。
后面改用8.1.0版本后正常启动解决了黑屏问题。
4.下载源码
由于不能访问android官网,这里通过使用【清华源:(https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/)】代替。
4.1建立源码文件夹
mkdir source
cd source
4.2初始化仓库
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.1.0_r1

如果提示无法连接到 gerrit.googlesource.com,请参照git-repo的帮助页面的更新一节。
4.3 同步源码

repo sync

中断或显示完成后可以多次执行此命令以确保同步完成。

源码编译

1.按照JDK
由于版本为android-8.1.0,因此需要选择jdk8。
sudo apt-get update
sudo apt-get install openjdk-8-jdk
2.Ubuntu16.04下的依赖
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib 
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential  
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib 
sudo apt-get install libc6-dev-i386 
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev 
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache

部分有重复,不影响。
3.编译
3.1初始化

#初始化环境
source build/envsetup.sh

引入需要的脚本和函数,后续使用
3.2选择编译目标

lunch

这里选择28,即aosp_angler_userdebug:
在这里插入图片描述
在这里插入图片描述
3.3进行编译

make -j2

等待直到显示编译成功完成。
3.3.1编译问题Out of memory error
由于编译任务繁重,编译过程中个人笔记本经常会出现内存耗尽问题。

在这里插入图片描述
解决方案:

#设置下内存,重启下jack-admin,重新make编译即可
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
out/host/linux-x86/bin/jack-admin kill-server
out/host/linux-x86/bin/jack-admin start-server
make

运行模拟器

source build/envsetup.sh
lunch(选择刚才你设置的目标版本,比如这里了我选择的是2)
emulator

生成卡刷包

make otapackage

之前在执行这个命令时一直报错:

ninja error:unknown target otapackage

开始时选择的编译目标是:aosp_arm-eng,这个是针对模拟器的,后面按照makefile排查发现针对模拟器的编译默认是不会生成ota包的,所以报错unknown target otapackage。
后面选择了aosp_angler-usedebug版本,正常生成ota包。
因此在lunch那里需要选择能生成对应ota包的编译目标才行。

整体到此就结束了,只是给自己的编译过程记录下。

参考:
(https://blog.csdn.net/lyb2518/article/details/77072792)

2014-12-21 15:08:40 xiaoyi848699 阅读数 1210
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19564 人正在学习 去看看 任苹蜻



<span style="font-size:18px;">/**
	 * 获取本地软件版本
	 */
	public static int getLocalVersion(Context ctx) {
		int localVersion = 0;
		try {
			PackageInfo packageInfo = ctx.getApplicationContext()
					.getPackageManager()
					.getPackageInfo(ctx.getPackageName(), 0);
			localVersion = packageInfo.versionCode;
			LogUtil.d("TAG", "本软件的版本。。" + localVersion);
		} catch (NameNotFoundException e) {
			e.printStackTrace();
		}
		return localVersion;
	}

	/**
	 * 获取本地软件版本名称
	 */
	public static String getLocalVersionName(Context ctx) {
		String localVersion = "";
		try {
			PackageInfo packageInfo = ctx.getApplicationContext()
					.getPackageManager()
					.getPackageInfo(ctx.getPackageName(), 0);
			localVersion = packageInfo.versionName;
			LogUtil.d("TAG", "本软件的版本。。" + localVersion);
		} catch (NameNotFoundException e) {
			e.printStackTrace();
		}
		return localVersion;
	}</span>


2012-08-29 09:19:47 wangjia55 阅读数 48477
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19564 人正在学习 去看看 任苹蜻

  我们可以在AndroidManifest.xml中设置程序的版本号等,如android:versionName="1.0",那如果想在代码中获取这个版本号呢,可以用如下方法(这些修改版本号时只需要修改AndroidManifest.xml中的设置,不用修改代码了):

Java代码  收藏代码
  1. /** 
  2.  * 返回当前程序版本名 
  3.  */  
  4. public static String getAppVersionName(Context context) {  
  5.     String versionName = "";  
  6.     try {  
  7.         // ---get the package info---  
  8.         PackageManager pm = context.getPackageManager();  
  9.         PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);  
  10.         versionName = pi.versionName;  
  11.         versioncode = pi.versionCode;
  12.         if (versionName == null || versionName.length() <= 0) {  
  13.             return "";  
  14.         }  
  15.     } catch (Exception e) {  
  16.         Log.e("VersionInfo""Exception", e);  
  17.     }  
  18.     return versionName;  
  19. }  

 2.--------------------------------------------------------------------------

获取当前应用的版本号:

   private String getVersionName() throws Exception
   {
           // 获取packagemanager的实例
           PackageManager packageManager = getPackageManager();
           // getPackageName()是你当前类的包名,0代表是获取版本信息
           PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
           String version = packInfo.versionName;
           return version;
   }
 

获取当前系统的版本号:

textView.setText("Product Model: " + android.os.Build.MODEL + "," 
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
/*获取当前系统的android版本号*/
int currentapiVersion=android.os.Build.VERSION.SDK_INT;

2018-07-16 10:25:53 qq_31352929 阅读数 6079
  • 快速入门Android开发 视频 教程 android studio

    这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

    19564 人正在学习 去看看 任苹蜻

Android版本与内核对应版本关系


Android系统跟Linux系统关系

Android系统架构图

Linux系统架构图



   上面两幅图应该很直观的展示了Android系统和Linux发行版系统(Ubuntu/Fedora/centos)之间的区别和联系。可以这么说Android本质上还是一个Linux系统,只不过Google对它进行了裁剪和定制,这跟我们定制Linux到自己的嵌入式设备上的做法大同小异,只不过Google做的更多。

   本质区别:Android系统和Linux发行版的系统根本区别是Android上面只跑了一个Dalvik/ART,而Linux发行版上面跑了很多“Dalvik/ART”而已。如果你把gnome或者LXQT部署到Android上,或者把Dalvik/ART部署到Linux发行版上的话,那么二者的区别可能并没你想象的那么大。







api android 版本

博文 来自: xiaoyu940601
没有更多推荐了,返回首页