Actuellement, la plupart des appareils mobiles sont des iPhone et des androïdes pour smartphone. Connaissez-vous la limite supérieure de la taille de chaque application? En août 2020, l'application iOS fait 4 Go et l'application Android 100 Mo.
En regardant cela, il y a une grande différence ... Je me demande si Android utilise une méthode pour télécharger des données ultérieurement pour les jeux de grande capacité. Je n'ai pas écrit le tas en détail, mais comme le terminal a quelques Go de mémoire, cela ne devrait pas être un gros problème.
Cependant, ce dont je voudrais parler cette fois, c'est du futur téléphone (= Garakei), qui était actif en tant que pilier avant la naissance des smartphones, et l'histoire de l'i-appli de DoCoMo.
Je voudrais vous présenter que la première méthode de développement de l'i-appli de DoCoMo a été le résultat d'efforts en larmes.
Le temps remonte à l'époque de Garake. Je reconnais que c'est l'i-appli de Docomo qui a tiré le monde des applications de Garake, mais quelle était la limite supérieure de taille à ce moment-là?
Voici les informations de l'application sur le profil DoJa-1.0 qui a été publié au début.
Modèle | Taille de l'application (Ko) | Capacité du tas(KB) |
---|---|---|
FOMA N2001 | 10 | 96 |
FOMA N2002 | 10 | 560 |
FOMA P2101V | 30 | 1100 |
FOMA D2101V | 10 | 128 |
FOMA P2002 | 10 | 560 |
FOMA SH2101V | 30 | 1024 |
FOMA T2101V | 30 | 1105 |
Page Officielle https://www.nttdocomo.co.jp/service/developer/make/content/spec/iappli/#notice05
La taille minimale de l'application était de 10 Ko et la capacité du segment de mémoire était de 96 Ko. Il y a un tas natif séparé, et il semble que la mémoire côté terminal puisse être un peu utilisée, mais cette capacité dans la partie Java pure.
La taille de l'application est un fichier Jar qui comprend des octets compilés à partir de code et de ressources telles que des images. Cela était limité à 10 Ko (10240 octets).
Vous pouvez seulement en être conscient, alors vérifions combien c'est. Cependant, il est difficile de créer un environnement de développement i-appli, nous comparerons donc les tailles des applications Android à partir d'août 2020.
Je pense que j'ai choisi une application qui semble avoir relativement peu de fonctions, mais les unités MB sont naturelles. Étant donné que les choses et les temps sont différents, il n'est pas possible de faire une comparaison générale, mais je ne peux pas imaginer que cela rentre dans 10 Ko.
Je sais que la taille de l'i-appli est extrêmement stricte, mais je me demande comment cela a été fait. Le seul élément à gratter est le programme.
Il est vrai que vous ne pouvez pas faire ce que vous voulez car vous manquerez de fonctionnalités si vous coupez le programme, mais il existe un moyen de réduire la taille sans réduire les fonctionnalités. Cela permet de réduire la taille des noms de variables, des noms de classes et des noms de méthodes.
Le code est écrit de manière assez appropriée, mais par exemple, il ressemble à ceci.
Changer avant
public class MainFrame {
private static final String TITLE = "Exemple d'application";
private static final String ERROR_MESSAGE = "Une erreur est survenue";
public void showFrame() {
try {
//Certains traitements
} catch (Exception e) {
showMessage(ERROR_MESSAGE);
}
}
public void showMessage(String message) {
//Traitement de l'affichage des messages
}
}
Après le changement
public class F {
private static final String A = "Exemple d'application";
private static final String B = "Une erreur est survenue";
public void s() {
try {
//Certains traitements
} catch (Exception e) {
m(B);
}
}
public void m(String s) {
//Traitement de l'affichage des messages
}
}
Si vous réduisez le nombre de caractères dans le nom de la variable et le nom de la méthode, le nombre de caractères écrits dans le fichier de classe compilé diminuera, vous pouvez donc vous attendre à une réduction de taille. Quoi qu'il en soit, c'est un programme d'économie d'énergie.
Avec un programme de cette taille, ce n'est pas illisible, mais il est évident que plus on le construit, plus il s'aggrave. Comment avez-vous résolu ce problème?
Après avoir réduit sa sagesse, ses prédécesseurs ont décidé d'utiliser quelque chose que le langage Java n'utilise pas. C'est un préprocesseur souvent utilisé dans les langages C.
Plus précisément, écrivez le code suivant.
Code de version du préprocesseur
#define _MainFrame F
#define _TITLE A
#define _ERROR_MESSAGE B
#define _showFrame s
#define _showMessage m
public class _MainFrame {
private static final String _TITLE = "Exemple d'application";
private static final String _ERROR_MESSAGE = "Une erreur est survenue";
public void _showFrame() {
try {
//Certains traitements
} catch (Exception e) {
_showMessage(_ERROR_MESSAGE);
}
}
public void _showMessage(String s) {
//Traitement de l'affichage des messages
}
}
La syntaxe ci-dessous signifie la conversion de la lettre "_MainFrame" en lettre "F".
python
#define _MainFrame F
Cette partie n'est pas de la syntaxe Java, donc bien sûr, elle ne peut pas être compilée par le compilateur Java. Alors passons par le préprocesseur. Ensuite, le code suivant est terminé.
public class F {
private final String A = "Exemple d'application";
private final String B = "Une erreur est survenue";
public void s() {
try {
//Certains traitements
} catch (Exception e) {
m(B);
}
}
public void m(String s) {
//Traitement de l'affichage des messages
}
}
Maintenant que vous pouvez le compiler, tout ce que vous avez à faire est de le construire normalement.
De cette façon, vous pouvez réduire la taille du code avec des macros tout en augmentant la lisibilité en passant le code en deux étapes: préprocesseur → compilateur Java. Je pense que c'était difficile car je ne peux pas utiliser l'IDE.
Cet article est basé sur l'idée d'utiliser un préprocesseur que j'ai vu sur un autre site il y a près de 10 ans. Le site n'existe plus, mais je l'ai écrit parce que je voulais garder l'idée.
Recommended Posts